|
12.01.2007, 12:13 | #1 |
Участник
|
2AndyD:
Фактически проблема, из-за которой начал ковыряться - нужно консультантам на время разработки дать возможность перезапуска AOS, но давать админа не хочется... Я так понял, как раз Ваша первая версия позволяла это делать Самому не заходя на сервер перезапустить или данные автоматом подгрузить - тоже удобно, но сейчас для меня - вторично. |
|
12.01.2007, 16:11 | #2 |
Участник
|
Решается настройками аоса... shut down after being idle..+ ondemand
__________________
Да, цирк уехал |
|
12.01.2007, 16:26 | #3 |
Участник
|
|
|
12.01.2007, 17:24 | #4 |
Участник
|
сколько штук?)))
__________________
Да, цирк уехал |
|
12.01.2007, 14:19 | #5 |
Участник
|
В сообщении выше обновил вложение
Добавлен метод AosStatus_RunDll - вызывается так же, как и два других метода rundll32 AosMgr.dll,AosStatus_RunDll Axapta "Aaa 1" 1 После имени вызываемой функции указывается имя хоста или IP адрес. Второй параметр - имя AOS. Если в имени есть пробелы, то заключить в двойные кавачки. Третий параметр - показывать (1)/не показывать (0 или не указывать параметр) сообщение в случае ошибки В методы, вызываемые из RunDll добавлено возвращение кода возврата (можно обрабатывать через errorlevel). Во вложении есть пример обработки возвращаемого статуса в файле start.cmd (для всех методов обработка одинаковая) По поводу прав пользователей - ограничение на права для запуска и остановки AOS в текущей и последующих (если будут) версиях убираться не будет.
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: gl00mie (3). |
12.01.2007, 15:25 | #6 |
Участник
|
Здорово, как раз хотел написать на эту тему Только, наверно, стоило оставить в архиве проект с примером вызова функций библиотеки из приложения Axapta...
|
|
12.01.2007, 14:42 | #7 |
Участник
|
Спасибо. А что убираться не будет - я это и сам понимаю, что дырка большая. Так - поделился печалью.
|
|
12.01.2007, 15:31 | #8 |
Участник
|
У е.
Я и забыл, что он был там. Сейчас выложу
__________________
Axapta v.3.0 sp5 kr2 |
|
12.01.2007, 18:38 | #9 |
Участник
|
Дело в автоматизации и распределенности. как же мы сейчас работаем, если договориться не можем? просто это автоматизированная договоренность.
|
|
03.04.2007, 13:46 | #10 |
Участник
|
BuilderC++ ругается при компиляции на параметы в функциях aosmgr.dll. Как правильно подключить эту библиотеку к проекту. Есть ли подробное описание функций бибилиотеки?
|
|
03.04.2007, 15:36 | #11 |
Участник
|
Для Builder'а не знаю, но для VisualC можно так
Файл "aosmgr.h" X++: #ifndef _AOSMGR_H_ #define _AOSMGR_H_ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include <windef.h> typedef UINT (CALLBACK * LPFNDLLAOSSTATUS)(char* Host, char* AOSname); typedef UINT (CALLBACK * LPFNDLLAOSSTART)(char* Host, char* AOSname); typedef UINT (CALLBACK * LPFNDLLAOSSTOP)(char* Host, char* AOSname); #ifdef __cplusplus } #endif /* __cplusplus */ #endif X++: // AxAosMgr.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windef.h> #include <winbase.h> #include <winuser.h> #include <malloc.h> #include "aosmgr.h" char * GetStatusStr(int _status) { switch (_status) { case 1: return "AOS остановлен"; case 2: return "AOS запускается"; case 3: return "AOS останавливается"; case 4: return "AOS запущен"; case -1: return "Connection timed out"; case -2: return "Connection refused"; case -3: return "Protocol error"; case -4: return "Server manager not started"; case -5: return "AOS stopped"; case -6: return "AOS start pending"; case -7: return "AOS stop pending"; case -8: return "AOS running"; case -9: return "AOS not found on server"; case -10: return "Cannot assign requested address"; case -11: return "Unknown TCP error"; case -12: return "AOS unknown status"; case -13: return "Access denied"; case -14: return "Service error"; case -15: return "Invalid Axapta Service Name"; case -16: return "Service Does Not Exist"; case -17: return "Service Not Started"; case -18: return "Server Unavailable"; default: return "Unknown status"; } } int _tmain(int argc, _TCHAR* argv[]) { HINSTANCE hDLL; LPFNDLLAOSSTATUS AOSStatus; LPFNDLLAOSSTART AOSStart; LPFNDLLAOSSTOP AOSStop; char* msg; hDLL = LoadLibrary("AosMgr.dll"); if (hDLL != NULL) { AOSStatus = (LPFNDLLAOSSTATUS)GetProcAddress(hDLL, "AosStatus"); if (!AOSStatus) { FreeLibrary(hDLL); return -1; } /* AOSStart = (LPFNDLLAOSSTART)GetProcAddress(hDLL, "AosStart"); AOSStop = (LPFNDLLAOSSTOP)GetProcAddress(hDLL, "AosStop");*/ msg = GetStatusStr(AOSStatus("Axapta", "Axapta")); if (msg) { char * buf = (char*) malloc(strlen(msg)+1); strcpy(buf, msg); CharToOem(buf, buf); printf("%s\n", buf); free(buf); } } return 0; }
__________________
Axapta v.3.0 sp5 kr2 |
|
03.04.2007, 16:53 | #12 |
Участник
|
Большое спасибо, AndyD!!!!!
|
|
04.09.2007, 11:18 | #13 |
Участник
|
Уважаемый AndyD возникла необходимость воспользоваться вашей утилитой. При запуске из командной строки:
rundll32 AosMgr.dll,AosStart_RunDll serverName aosName происходит сбой аоса, после которого он не запускается даже через Service Manadger лог ошибки: Ошибка1: "Описание: Object Server Dev: Fatal SQL condition during login. Error message: "Внутренний системный номер версии таблицы, хранящейся в базе данных, больше, чем версия, поддерживаемая ядром (33/31). Используйте более новое ядро Microsoft Business Solutions-Axapta, или запустите Microsoft Axapta используя параметр -REPAIR командной строки, чтобы провести синхронизацию." " Ошибка2 "Object Server Dev: Axapta Server received an invalid socket" У нас Axapta 3.0 CIS SP3 build 9.2 Буду признателен за ответ |
|
04.09.2007, 14:23 | #14 |
Участник
|
А кто у вас на сервере слушает порт TCP 2712?
Service Manager - это имеется в виду Server Manager? Схема работы dll-ки такая. По порту TCP 2712 идет обращение к Server Manager (Ax32mgr.exe). А уже Server Manager при необходимости загружает нужный инстанс AOS (ax32serv.exe) Для проверки, попробуйте запустить утилиту axctrl.exe (утилита для настройки AOS) с удаленной машины и поуправлять сервером
__________________
Axapta v.3.0 sp5 kr2 |
|
04.09.2007, 15:01 | #15 |
Участник
|
Цитата:
Service Manager - это имеется в виду Server Manager?
Цитата:
Схема работы dll-ки такая.
По порту TCP 2712 идет обращение к Server Manager (Ax32mgr.exe). А уже Server Manager при необходимости загружает нужный инстанс AOS (ax32serv.exe) Для проверки, попробуйте запустить утилиту axctrl.exe (утилита для настройки AOS) с удаленной машины и поуправлять сервером |
|
16.11.2007, 17:54 | #16 |
Участник
|
1. Сомневаюсь, что бы в открытом доступе была подобная информация.
2. Эту операцию необходимо выполнять программно?
__________________
Axapta v.3.0 sp5 kr2 |
|
20.11.2007, 12:09 | #17 |
Developer
|
Извините, что не смог ответить сразу.
Спасибо. Да... желательно. Иногда возникает необходимость остановить все АОСы (три штуки на разных серверах) и выставить им режимом запуска = "manual" для предотвращения автоматического запуска. И, соответственно, после выполненных работ, необходимо их запустить и выставить им режимом запуска = "on demand". Если есть возможность програмно управлять режимом запуска АОСа, то данную процедуру можно автоматизировать. |
|
20.11.2007, 14:05 | #18 |
Участник
|
Цитата:
Сообщение от vallys
Иногда возникает необходимость остановить все АОСы (три штуки на разных серверах) и выставить им режимом запуска = "manual" для предотвращения автоматического запуска. И, соответственно, после выполненных работ, необходимо их запустить и выставить им режимом запуска = "on demand". Если есть возможность програмно управлять режимом запуска АОСа, то данную процедуру можно автоматизировать.
|
|
|
За это сообщение автора поблагодарили: vallys (2). |
20.11.2007, 15:28 | #19 |
Developer
|
Цитата:
На одном как раз есть. Для тестового и др. временных АОСов отдельный сервер не выделен. Так что вопрос остается открытым. Но за предложение спасибо, на текущий момент два АОСа из трех действительно можно так остановить. Кстати, будет ли выдано предупреждение пользователям, что АОС останавливается, если остановить сервис Axapta Object Manager? |
|
20.11.2007, 16:16 | #20 |
Developer
|
|
|
Теги |
aos, ax3.0, download, faq, администрирование, законченный пример |
|
|