AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.12.2015, 11:29   #1  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
AX2009 Batch run, deadlocks - как убить сессии?
Коллеги, может кто в курсе, как можно убить сессии SQL\AX в случае если она намертво повисла в дедлоках в режиме Batch
- Доступа к SQL нет
- АОС рестартартовать нельзя
- Из формы SysUserOnline сессии не убиваются.

Выгляди это так:
Вложение 9449

Последний раз редактировалось DSPIC; 28.09.2017 в 01:50.
Старый 11.12.2015, 12:00   #2  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Сделать кнопку которая прямым конектом к БД будет убивать процессы с отображаемыми в строке SPID
Старый 11.12.2015, 12:01   #3  
ice321i is offline
ice321i
Участник
 
60 / 47 (2) +++
Регистрация: 22.10.2007
Запускать на сервере:
X++:
str                spids;//Spid пользователя кого надо кильнуть с БД
str                sqlStatement = strfmt('KILL %1', spid);
SqlStatementExecutePermission  permission = new SqlStatementExecutePermission(sqlStatement);
UserConnection              userConnection = new userconnection();
 ;
    
permission.assert();
    
userConnection.createStatement().executeUpdate(sqlStatement);
За это сообщение автора поблагодарили: DSPIC (2).
Старый 11.12.2015, 12:41   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от ice321i Посмотреть сообщение
Запускать на сервере:
X++:
str                spids;//Spid пользователя кого надо кильнуть с БД
str                sqlStatement = strfmt('KILL %1', spid);
SqlStatementExecutePermission  permission = new SqlStatementExecutePermission(sqlStatement);
UserConnection              userConnection = new userconnection();
 ;
    
permission.assert();
    
userConnection.createStatement().executeUpdate(sqlStatement);
Не работает. "[Microsoft][SQL Native Client][SQL Server]User does not have permission to use the KILL statement."
Старый 11.12.2015, 12:52   #5  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Либо писать в тех.поддержку клиента.
Либо искать какие в системе есть SQL интеграции, может хранятся какие-нибудь учетки для доступа к SQL с бОльшими правами, чем у АОСа.
За это сообщение автора поблагодарили: DSPIC (2).
Старый 11.12.2015, 13:12   #6  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,486 / 408 (16) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Не работает. "[Microsoft][SQL Native Client][SQL Server]User does not have permission to use the KILL statement."
Так пусть это запустит тот, у кого есть соответствующие права
__________________
С уважением,
Вячеслав
Старый 11.12.2015, 15:15   #7  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Возможный способ http://dynamics-ax-live.blogspot.ru/...n-session.html
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 11.12.2015, 15:36   #8  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
:)
Цитата:
Сообщение от DSPIC Посмотреть сообщение
она намертво повисла в дедлоках
Offtop: насколько мне известно в дедлоках зависнуть нельзя
Можно просто в локах...
__________________
Zhirenkov Vitaly
Старый 11.12.2015, 15:40   #9  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
Думаю это не сработает, т.к. это скорее всего то же самое что вручную убить сессии из формы SysUserOnline. А автор уже отметил, что это не работает.

Так что нужно искать соответствующие права на SQL.
__________________
Zhirenkov Vitaly
Старый 15.12.2015, 12:11   #10  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от db Посмотреть сообщение
Сделать кнопку которая прямым конектом к БД будет убивать процессы с отображаемыми в строке SPID
Цитата:
Сообщение от ice321i Посмотреть сообщение
Запускать на сервере:
X++:
str                spids;//Spid пользователя кого надо кильнуть с БД
str                sqlStatement = strfmt('KILL %1', spid);
SqlStatementExecutePermission  permission = new SqlStatementExecutePermission(sqlStatement);
UserConnection              userConnection = new userconnection();
 ;
    
permission.assert();
    
userConnection.createStatement().executeUpdate(sqlStatement);
Спасибо, не работает. Упираемся в те же самые права.


Цитата:
Сообщение от Wamr Посмотреть сообщение
Либо искать какие в системе есть SQL интеграции, может хранятся какие-нибудь учетки для доступа к SQL с бОльшими правами, чем у АОСа.
О! Собственноручно встречал логины и пароли прямо в коде X++.
Нужно запомнить как хинт на будущее, спасибо.

Цитата:
Сообщение от pitersky Посмотреть сообщение
Так пусть это запустит тот, у кого есть соответствующие права
Тот у кого есть права не разрешает этими правами воспользоваться. + Нужна серия запусков для отладки.

Цитата:
Сообщение от ZVV Посмотреть сообщение
Думаю это не сработает, т.к. это скорее всего то же самое что вручную убить сессии из формы SysUserOnline. А автор уже отметил, что это не работает.
Так что нужно искать соответствующие права на SQL.
Correct!

Summary: короче, без прав никуда. Мой вопрос предполагал найти быстрое возможное решение проблемы, но не получилось, к сожалению. Да, остается служба поддержки, но это длительная процедура, хотя ничего больше не остается.
Где-то еще вычитал, что можно удалить записи в SysClientSession, после чего АОС, якобы, их терминейтит на уровне SQL. Так вот - это тоже не работает, если вдруг кто-то захочет воспользоваться.

Всем спасибо, если других идей не появилось, тему можно закрыть.
Старый 15.12.2015, 12:32   #11  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Есть еще вариант, если у AOS прав побольше, с написанием небольшого класса с возможностью выполнения в пакетном режиме и передачей ему параметра с идентификатором сессии. В самом классе пишем прямой вызов TransactSQL "kill %sessionid". Создаем одноразовое пакетное задание, указываем код сессии, выбираем группу журналов, запускаем и ждем.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 15.12.2015, 16:37   #12  
ice321i is offline
ice321i
Участник
 
60 / 47 (2) +++
Регистрация: 22.10.2007
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
Есть еще вариант, если у AOS прав побольше, с написанием небольшого класса с возможностью выполнения в пакетном режиме и передачей ему параметра с идентификатором сессии. В самом классе пишем прямой вызов TransactSQL "kill %sessionid". Создаем одноразовое пакетное задание, указываем код сессии, выбираем группу журналов, запускаем и ждем.
К сожалению у автора данной темы и не хватает прав для пользователя под кем запущен aos, на выполнение команды kill на сервере бд.
Класс в данном случае писать не обязательно, можно просто создать менюайтем для джоба в котором выполняется код киляни с бд и установить св-во RunOn - Server.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Optimizing AX Batch Performance - Batch Group Configuration Blog bot DAX Blogs 0 01.04.2011 13:11
emeadaxsupport: How batch processing works under the hood AX2009 Blog bot DAX Blogs 0 22.02.2011 12:11
daxdilip: Scheduling a Batch Job through code, Batch Multithreading and creating batch tasks at run time Blog bot DAX Blogs 0 17.02.2011 15:11
axaptapedia: Batch processing Blog bot DAX Blogs 0 29.01.2009 17:05
Fred Shen: New server-based batch framework in AX2009 Blog bot DAX Blogs 0 04.09.2008 07:06
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:23.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.