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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.11.2006, 13:52   #1  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Lightbulb Остановка и запуск сервера из командной строки
После долгих мытарств нашел способ остановки сервера на W2k3:
Остановка -
WMIC PATH Process WHERE (Name="ax32serv.exe" AND CommandLine LIKE '%ax32serv%Axapta%') CALL Terminate
сервер имеет название Axapta
Старт
%Path_Server_Ax%\ax32serv.exe "Axapta"
За это сообщение автора поблагодарили: raz (5), denny (1).
Старый 16.11.2006, 17:25   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
После долгих мытарств нашел способ остановки сервера на W2k3:
Остановка -
WMIC PATH Process WHERE (Name="ax32serv.exe" AND CommandLine LIKE '%ax32serv%Axapta%') CALL Terminate
сервер имеет название Axapta
Старт
%Path_Server_Ax%\ax32serv.exe "Axapta"
С учетом того, что AOS запускается как сервис, прибивание его через WMI равносильно обычному net stop "Service Name" за исключением того, что тут мы вроде как не знаем название сервиса. Это то, что называется "жесткий" останов AOS. Вопрос о "мягком" останове/перезапуске обсуждался тут: Программный перезапуск AOS
Старый 16.11.2006, 17:29   #3  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
С учетом того, что AOS запускается как сервис, прибивание его через WMI равносильно обычному net stop "Service Name" за исключением того, что тут мы вроде как не знаем название сервиса. Это то, что называется "жесткий" останов AOS. Вопрос о "мягком" останове/перезапуске обсуждался тут: Программный перезапуск AOS
Ничего подобного. Останавливается не "Axapta Object Server", а именно экземпляр сервера с определенным именем. Если Вы запустите два сервера с разными масками, то сможете останавливать их по отдельности. Обратите внимание на выборку работающего экземпляра.
Старый 16.11.2006, 18:06   #4  
Alex_K is offline
Alex_K
Участник
 
531 / 36 (3) +++
Регистрация: 07.02.2003
Кстати, вчера официально вышла Microsoft Powershell: http://www.microsoft.com/windowsserv.../download.mspx

Думаю, с её помощью подобные задачки должны решаться на раз.
Старый 17.11.2006, 08:25   #5  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от Alex_K Посмотреть сообщение
Кстати, вчера официально вышла Microsoft Powershell: http://www.microsoft.com/windowsserv.../download.mspx

Думаю, с её помощью подобные задачки должны решаться на раз.
Maybe, maybe. Самое интересное в том, что при использовании WSH и WMI я не смог постопить сервер. Анализ возвращаемого значения при вызове метода Terminate объекта W32_Process выдал "Access denied"
Старый 17.11.2006, 11:29   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
при использовании WSH и WMI я не смог постопить сервер. Анализ возвращаемого значения при вызове метода Terminate объекта W32_Process выдал "Access denied"
Что и требовалось доказать. Хотя, признаться честно, в wmi я не силен, но у меня есть большое подозрение, что метод W32_Process::Terminate() выливается в вызов kernel32.TerminateProcess() - жуткий метод прибивания процесса без какой-либо возможности для последнего "подчистить" за собой, закрыть соединения и файлы, собрать мусор и т.п. А Access denied - штатный ответ виндов на попытку применения этой функции к процессам, запущенным как сервисы.
Предлагаю все-таки остановиться на dll-ке, разработанной AndyD.
Старый 17.11.2006, 11:39   #7  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Что и требовалось доказать. Хотя, признаться честно, в wmi я не силен, но у меня есть большое подозрение, что метод W32_Process::Terminate() выливается в вызов kernel32.TerminateProcess() - жуткий метод прибивания процесса без какой-либо возможности для последнего "подчистить" за собой, закрыть соединения и файлы, собрать мусор и т.п. А Access denied - штатный ответ виндов на попытку применения этой функции к процессам, запущенным как сервисы.
Предлагаю все-таки остановиться на dll-ке, разработанной AndyD.
WMIC работает корректно.
Старый 17.11.2006, 12:30   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
WMIC работает корректно.
"Не верю!" Я провел небольшой эксперимент "на кошках" - сервисе фонового копирования файлов для Far Manager:
Код:
[C:\]wmic process where (name='bcsvc.exe') call terminate
Executing (\\UNWS0818\ROOT\CIMV2:Win32_Process.Handle="2076")->terminate()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ReturnValue = 0;
};
При этом в eventlog'е получил следующее:
Код:
Event Type:	Error
Event Source:	Service Control Manager
Event Category:	None
Event ID:	7034
Date:		17.11.2006
Time:		12:26:49
User:		N/A
Computer:	UNWS0818
Description:
The FAR Background Copy Service service terminated unexpectedly.
It has done this 1 time(s). For more information, see Help and Support Center at
http://go.microsoft.com/fwlink/events.asp.
Это даже не остановка сервиса, "это просто кю!" Подобным образом "останавливать" AOS я сам не хочу и другим не советую...
Старый 17.11.2006, 13:25   #9  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Это Ваше право, но AOS - это ax32mgr.exe, и его я не останавливаю.
А вот, что выдается, если остановить AOS, до остановки сервера:
Server Manager: Forcing termination of Object Server Axapta (PID=734) due to termination of the Server Manager.
Насколько это лучше? IMHO, ничем. Кстати, при остановке через "мой" способ в Event вообще ничего нет.
Старый 17.11.2006, 13:31   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
ax32mgr это не AOS, а сервер для управления AOS-ами. Сами AOS'ы - ax32serv.
PS в dll управление идет через ax32mgr, причем стопятся или запускаются именно ax32serv
PPS При штатном останове AOS сообщает, что он "has been stopped"
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 17.11.2006 в 13:35.
Старый 17.11.2006, 13:45   #11  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от AndyD Посмотреть сообщение
ax32mgr это не AOS, а сервер для управления AOS-ами. Сами AOS'ы - ax32serv.
PS в dll управление идет через ax32mgr, причем стопятся или запускаются именно ax32serv
PPS При штатном останове AOS сообщает, что он "has been stopped"
Согласен, что работа через dll удобнее и правильнее. Но dll не может управлять удаленными сервисами (может я не прав???). ax32mgr = Axapta Object Server в сервисах. Я говорил о нем, а не о архитектуре Axapta. Извините, если ввел в заблуждение
Старый 17.11.2006, 13:49   #12  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
Согласен, что работа через dll удобнее и правильнее. Но dll не может управлять удаленными сервисами (может я не прав???).
Что вы имеете в виду?
Запуск из командной строки? Воспользуйтесь rundll32
__________________
Axapta v.3.0 sp5 kr2
Старый 17.11.2006, 13:58   #13  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
при остановке через "мой" способ в Event вообще ничего нет.
Смысл сообщения в eventlog был в том, что процесс был просто "прибит" - без возможности нормально завершить свою работу, сообщить о своем уходе тому же service manager'у, нормально закрыть сетевые соединения, сбросить несохраненные данные на диск или дозаписать их в БД, etc. Для наглядности результатов такого завершения работы процесса можно попробовать аналогичным образом "перезапустить" sqlservr.exe...
Старый 17.11.2006, 14:37   #14  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Стоп. Я ведь не уговариваю использовать мой метод. Не нравится - не пользуйтесь. Меня тоже часто спрашивают: "Почему у тебя на ноутбуке стоит W2K3, а не XP".
Я отвечаю: "Не нравится мне XP"
Теги
aos, faq, администрирование

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Цветные строки в Grid Sergo DAX: База знаний и проекты 14 19.04.2012 10:02
Как открыть ax32.exe из командной строки без ввода пароля? Morpheus DAX: Администрирование 6 16.11.2006 14:57
Как отпроцессить куб из командной строки? slava09 DAX: Программирование 6 01.06.2006 13:51
Параметры командной строки конфигурации listener DAX: Администрирование 3 18.12.2004 00:21
При создании строки в закупке статус строки становится "Отменено" AlexUnik DAX: Функционал 4 27.09.2004 16:05

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:02.