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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.11.2007, 12:09   #1  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Извините, что не смог ответить сразу.
Цитата:
Сообщение от AndyD Посмотреть сообщение
1. Сомневаюсь, что бы в открытом доступе была подобная информация.
Спасибо.
Цитата:
Сообщение от AndyD Посмотреть сообщение
2. Эту операцию необходимо выполнять программно?
Да... желательно. Иногда возникает необходимость остановить все АОСы (три штуки на разных серверах) и выставить им режимом запуска = "manual" для предотвращения автоматического запуска. И, соответственно, после выполненных работ, необходимо их запустить и выставить им режимом запуска = "on demand". Если есть возможность програмно управлять режимом запуска АОСа, то данную процедуру можно автоматизировать.
Старый 20.11.2007, 14:05   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от vallys Посмотреть сообщение
Иногда возникает необходимость остановить все АОСы (три штуки на разных серверах) и выставить им режимом запуска = "manual" для предотвращения автоматического запуска. И, соответственно, после выполненных работ, необходимо их запустить и выставить им режимом запуска = "on demand". Если есть возможность програмно управлять режимом запуска АОСа, то данную процедуру можно автоматизировать.
Ну вот, сказали бы сразу, какая стоит задача, было б намного проще... Иными словами, необходимо остановить AOS'ы с типом запуска OnDemand на определенное время - так, чтобы они в это время по любому не запускались. Но ведь добиться этого можно и другими способами, кроме запудривания мозгов Axapta Object Manager'у. Главное условие: чтобы на тех же серверах не было других AOS'ов, которые должны на это время оставаться доступными. Так вот, почему бы просто не останавливать на указанное время сервис Axapta Object Manager? Тогда AOS'ы точно не запустятся, пока вы не перезапустите этот сервис, - и не надо будет менять параметры их запуска.
За это сообщение автора поблагодарили: vallys (2).
Старый 20.11.2007, 15:28   #3  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Ну вот, сказали бы сразу, какая стоит задача, было б намного проще... Иными словами, необходимо остановить AOS'ы с типом запуска OnDemand на определенное время - так, чтобы они в это время по любому не запускались
Да, именно так. Сожалею, что не описал раньше.
Цитата:
Сообщение от gl00mie Посмотреть сообщение
...Главное условие: чтобы на тех же серверах не было других AOS'ов, которые должны на это время оставаться доступными...
На одном как раз есть. Для тестового и др. временных АОСов отдельный сервер не выделен. Так что вопрос остается открытым. Но за предложение спасибо, на текущий момент два АОСа из трех действительно можно так остановить. Кстати, будет ли выдано предупреждение пользователям, что АОС останавливается, если остановить сервис Axapta Object Manager?
Старый 20.11.2007, 16:16   #4  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от vallys Посмотреть сообщение
...Кстати, будет ли выдано предупреждение пользователям, что АОС останавливается, если остановить сервис Axapta Object Manager?
Не будет.
Вопрос открыт.
Старый 20.11.2007, 17:51   #5  
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   #6  
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, время: 07:08.