29.01.2014, 13:41 | #1 |
Участник
|
Быстродействие метода logon в AxaptaComConnector.Axapta3
Здравствуйте.
Долго отрабатывает авторизация Ax2009 из vbs-скрипта при использовании Com Connector'а(секунд 7-10). Ниже код скрипта: Цитата:
Dim Axapta
Dim result Set Axapta = CreateObject("AxaptaComConnector.Axapta3") Axapta.Logon "", "", "objectServer", "" result = Axapta.callStaticClassMethod("MyClass", "MyMethod", "parameter1", "parameter2") Axapta.logoff set Axapta = nothing Подскажите, в чем может быть причина медленной авторизации и можно ли ускорить работу авторизации в данном случае? При использовании Net BusinessConnectora метод logonAs отрабатывает гораздо быстрее, но в данном случае необходимо использовать AxaptaComConnector. P.S. 1. Пробовал использовать logonAs для AxaptaComConnector - результат такой же. 2. Пробовал указывать все параметры - быстродействие не улучшилось.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 29.01.2014 в 13:47. |
|
29.01.2014, 14:50 | #2 |
Участник
|
Сталкивались с такой проблемой еще в 3-ке.
Делали COM как виндовую com+ службу. Он в этом случае не сразу разлогинивается. Поэтому тормозов нет при частых последовательных вызовах. Аналогично на 2009-ю переехали. Вроде без проблем. |
|
|
За это сообщение автора поблагодарили: samolalex (2). |
29.01.2014, 14:57 | #3 |
Участник
|
Если зарегистрировать как Com+ при первом вызове Logon отрабатывает секунды за 3-4, все последующие практически мгновенно. В настройках COM+ application можно прописать время простоя после которого объект сам выгружается из памяти.
|
|
|
За это сообщение автора поблагодарили: Logger (1), samolalex (2). |
29.01.2014, 17:02 | #4 |
Участник
|
Спасибо, за идею.
Сейчас попробовал: 1) Создал COM+ Application 2) Добавил в качестве компонента библиотеку AxCom.dll 3) Приложение сделал серверным 4) Запустил как службу Получил ошибку "The server is unavailable. Microsoft Dynamics will try to connect to other servers in your configuration" Если создать Com+ как библиотечное приложение, то logon отрабатывает так же медленно. Может есть какая-то ошибка в вышеизложенной последовательности действий или не все учтено в настройках?
__________________
С уважением, Александр. |
|
29.01.2014, 19:35 | #5 |
Участник
|
Может неправильно зарегистрировался, ниже скриншот пример.
А вот неплохое описание по настройке: http://floditt.blogspot.ru/2010/06/i...connector.html Последний раз редактировалось handy-comp; 29.01.2014 в 19:48. |
|
|
За это сообщение автора поблагодарили: Logger (3), gl00mie (3). |
30.01.2014, 15:41 | #6 |
Участник
|
Спасибо за отличную инструкцию.
Все настроено аналогичным образом. Но тем не менее, проблема сохранилась. Вот некоторые уточнения, которые может быть являются причиной медленной работы logon: 1) COM+ Application для Axapta Com Connector установлен на сервере; 2) Скрипт запускается с клиенткой "машины"; 3) Логин, под которым запущено COM+ приложение и соответствующая ему служба отличается от того, под которым запускается скрипт.
__________________
С уважением, Александр. |
|
30.01.2014, 18:33 | #7 |
Участник
|
Удаленный вызов коннектора не пробовал.
А если запускать скрипт на том же компьютере где установлен коннектор, работает нормально? |
|
30.01.2014, 18:51 | #8 |
Участник
|
Если запускать скрипт на том же компьютере, где установлен коннектор, то выдается ошибка (см. вложенный скриншот).
__________________
С уважением, Александр. |
|
30.01.2014, 20:05 | #9 |
Участник
|
Для локализации проблемы можно сделать так:
Создать конфигурационный файл axc и убедиться что клиент Ax нормально с ним запускается на этом сервере. Указать ссылку на этот файл в параметрах Logon или LogonAs, при этом другие параметры не указывать. Если появятся ошибки связанные с идентификацией, попробовать варианты добавить в параметры имя пользователя и домен, попробовать указать в настройках COM+ доменного пользователя у которого заведомо есть права. Помогает еще посмотреть в Events Log - Application, коннектор там оставляет полезные сообщения. |
|
30.01.2014, 22:16 | #10 |
Участник
|
handy-comp, спасибо за советы - очень помогли.
В итоге получилось следующее: на сервере с ОС Windows Server 2003 и настроенным COM+ Application удалось локально запустить скрипт с моментальной отработкой logon. В данном случае помог перезапуск службы COM Connectora. А вот если настроить COM+ Application на клиентской машине c Windows XP, выдает вышеуказанную ошибку. Если удалить COM+ Application в этом случае, то скрипт работает, но, как и говорилось в самом начале, очень медленно.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 30.01.2014 в 22:18. |
|
30.01.2014, 22:30 | #11 |
Участник
|
Удалось победить)
На локальной машине настраивать COM+ службу для COM Connectora не нужно, достаточно это сделать на сервере. Для быстрой отработки logon с клиенткой машины из vbs-скрипта необходимо в качестве второго параметра в методе CreateObject указать имя машины, на которой настроена COM+ служба. Таким образом, logon отрабатывает моментально. Пример vbs-скрипта: Цитата:
Dim Axapta
Dim result Set Axapta = CreateObject("AxaptaComConnector.Axapta3", "MyServer") Axapta.Logon "", "", "", "" result = Axapta.callStaticClassMethod("MyClass", "MyMethod", "parameter1", "parameter2") Axapta.logoff set Axapta = nothing Тему можно считать закрытой.
__________________
С уважением, Александр. |
|
|
За это сообщение автора поблагодарили: Logger (3), Ace of Database (3), lev (8), alex55 (1). |
Теги |
business connector, com connector, com+ |
|
|