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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.11.2007, 17:51   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от vallys Посмотреть сообщение
Кстати, будет ли выдано предупреждение пользователям, что АОС останавливается, если остановить сервис Axapta Object Manager?
Цитата:
Сообщение от vallys Посмотреть сообщение
Не будет. Вопрос открыт.
Ну так остановите их предварительно, в чем проблема? Останавливать-то AOS'ы с помощью выложенной здесь dll-ки можно. А получить их список можно из реестра, к примеру, через wmi - равно как и тормознуть сам сервис Axapta Object Manager
Код:
' константы, обозначающие ветки реестра
const HKCR	= &H80000000
const HKCU	= &H80000001
const HKLM	= &H80000002
const HKU	= &H80000003

const strAOSkey	= "system\currentcontrolset\services\axapta object server\applications"
const strAOSsvc	= "Axapta Object Server"
const strHost	= "."		' подставить нужное имя хоста; точка == localhost
set oWshShell	= CreateObject("WScript.Shell")
set oReg	= GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strHost & "\root\default:StdRegProv")
oReg.EnumKey HKLM, strAOSkey, colKeys
' тормозим все AOS'ы, о которых есть упоминания в реестре
for each objKey in colKeys
	WScript.Echo "Stopping AOS '" & objKey & "' at " & strHost
	oWshShell.Run "rundll32.exe AosMgr.dll,AosStop_RunDll " & strHost & " """ & objKey & """ 1", 7, True
next
' тормозим службу Axapta Object Manager
set oWMI	= GetObject("winmgmts:\\" & strHost & "\root\cimv2")
oWMI.ExecMethod("Win32_Service.Name='" & strAOSsvc & "'", "StopService")
set oReg	= nothing
set oWshShell	= nothing
set oWMI	= nothing
Здесть хоть WshShell.Run и вызывается синхронно (т.е. он вернет управление лишь после завершения запускаемого процесса), однако перед остановкой сервиса все равно лучше вставить какую-нить проверку или паузу. Но общая идея должна быть ясна.
Старый 20.11.2007, 19:11   #2  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Ну так остановите их предварительно, в чем проблема?
Действительно... что ж это я так...

Цитата:
Сообщение от gl00mie Посмотреть сообщение
...Но общая идея должна быть ясна.
Все понятно, спасибо за наглядный пример.
Только на одном сервере все-таки не охота глушить сервис из-за работы других АОСов.
Теги
aos, ax3.0, download, faq, администрирование, законченный пример

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
daxis: Troubleshooting blocked SPIDS in AOS Blog bot DAX Blogs 0 01.04.2009 18:05
Arijit Basu: AX 4 AOS Basics: [Level 100] Blog bot DAX Blogs 0 18.11.2007 14:30
DynamicsTech: What's New in Dynamics Ax 4.0 AOS? Blog bot DAX Blogs 0 12.04.2007 11:50
axaptapedia: Control AOS from command line Blog bot DAX Blogs 0 09.03.2007 14:50
Топология AOS'ов Sequel DAX: Администрирование 9 03.05.2006 18:37
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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