31.01.2019, 19:30 | #21 |
Banned
|
Цитата:
Сообщение от mazzy
Скрипт рестора?! И каковы ваши гарантии, что администраторы будут запускать скрипт рестора, а не сделают рестор руками или сваяют свой скрипт? Каковы ваши гарантии, что я сам не забуду о "скрипте рестора" через пару месяцев? Пока вы не предложите способ, работающий гарантировано, нахер ваши рассуждения о людях. https://www.youtube.com/watch?v=zvEfaU0gQuU Тема LIVE ссылок в копии она всем известная и понятная. И консультанту как заказчика действия, и исполнителю в поддержке. Там еще и SSRS и EP и AIF и... И все как-то привыкли решать это скриптом. На всех проектах. Уже много лет. Я поддерживаю задачу как учебную, она интересная. Но абсолютно против такого подхода на живом проекте. |
|
01.02.2019, 07:38 | #22 |
Боец
|
Попробуй включить трейспарсер и запусти АОС (или 2й АОС) и посмотри стек вызовов на стартапе
|
|
01.02.2019, 09:17 | #23 |
Злыдни
|
На просторах инета нашел, что рекомендуют добавлять вызовы в Application::startupPost().
Метод есть на 9-ке и на 12-ке, на 4 версии не смотрел.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
За это сообщение автора поблагодарили: Logger (5). |
01.02.2019, 12:01 | #24 |
Участник
|
В методе SysStartupCmd::construct() добавить в switch свою ветку case, где создаём экземпляр кастомного подкласса SysStartupCmd. Обычно достаточно перекрыть методы canRun(), infoRun().
перечитал внимательно, понял, что этот вариант не подходит.
__________________
// no comments Последний раз редактировалось dech; 01.02.2019 в 12:12. |
|
07.02.2019, 03:16 | #25 |
Участник
|
Кстати с удивлением обнаружил, что вашу проблему решили в D365. Время обновляться
https://docs.microsoft.com/en-us/dyn...customizations Цитата:
static delegate void onSystemStartup()
This event occurs when the system starts up. It is raised once per AOS upon startup. static delegate void onFirstTimeUserInteractiveSessionCreated() This event occurs when the system is creating an interactive session for the first time for a user. It is raised once per user per AOS. static delegate void onFirstTimeUserNonInteractiveSessionCreated() This event occurs when the system is creating a non-interactive session for the first time for a user. It is raised once per user per AOS. static delegate void onInteractiveSessionCreated() This event occurs when an interactive session is created and ready for use. It is raised once per interactive session creation for any user. static delegate void onSessionCreated(boolean _isBatch, boolean _isInteractive) |
|
|
За это сообщение автора поблагодарили: Vadik (1), Logger (1), ax_mct (2). |
11.02.2019, 11:36 | #26 |
Участник
|
Встречный вопрос.
А как можно узнать, что сервис AOS-а (2012) отправлен в перезагрузку (restart). Предположим есть вечный цикл (пакетное задание) и хорошо бы оно знало, сервис перезапускают. Сейчас он не знает и мешает этой самой перезагрузке (возможно я все виды CATCH-ей перехватил). На ум приходит экзотика с периодическим опрашиванием статуса windows-сервиса пакетного сервера, но верняком в систему шлются какие-то EVENT-ы в момент перезапуска и их можно перехватить. Может кто-то сталкивался? |
|
11.02.2019, 12:21 | #27 |
Banned
|
Цитата:
Сообщение от kgksoft
Встречный вопрос.
А как можно узнать, что сервис AOS-а (2012) отправлен в перезагрузку (restart). Предположим есть вечный цикл (пакетное задание) и хорошо бы оно знало, сервис перезапускают. Сейчас он не знает и мешает этой самой перезагрузке (возможно я все виды CATCH-ей перехватил). На ум приходит экзотика с периодическим опрашиванием статуса windows-сервиса пакетного сервера, но верняком в систему шлются какие-то EVENT-ы в момент перезапуска и их можно перехватить. Может кто-то сталкивался? То есть начинает снова выполняться если расписание. Если что не так то это обычно CIL причем на Batch сервере. Знать оно не может так как процесс прибивается но по идее может узнавать является ли он первым запуском после рестарта. Через свой флажок в базе. Но не понимаю зачем. |
|
03.04.2023, 13:58 | #28 |
Участник
|
Цитата:
Если добавить вывод лога в Application log сервера то последовательность примерно такая : 1. Application.new() 2. Info.new() 3. Application.servicesStartup() 4. Application.startup() 5. Application.startupPost() причем между пп. 3 и 4 идут сообщения Application log вида Цитата:
Object Server XX: Activated AIF service group: YYY. Service Count: 1.
UUU ... Object Server XX: The Services trace level is: Off Object Server XX: BuildXppServiceAssembly: QBTrace Enabled: False Object Server XX: CheckReportingQBClass: Reporting QB Class Name: SrsReportProviderQueryBuilderArgs. ClassId: YYYYY. Class EXISTS. Object Server XX: RPC error: Failed to register service principal name (SPN): 'GUID/SERVERNAME:2712' и аос стартует. Ну можно еще конечно добавить в код проверку X++: if (session.clientKind() == ClientType::Server && session.sessionId() == 1) Последний раз редактировалось Logger; 03.04.2023 в 14:02. |
|
|
За это сообщение автора поблагодарили: dech (5), gl00mie (5). |
Теги |
как правильно |
|
|