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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.11.2006, 12:33   #1  
sschainik is offline
sschainik
Участник
 
7 / 10 (1) +
Регистрация: 23.11.2006
Как программно разорвать или восстановить соединение через AxaptaCOMConnector?
Как программно разорвать или восстановить соединение через AxaptaCOMConnector?

Пробовал сделать это сделать следующим путем
Private Sub Command1_Click()
Dim ax As AxaptaCOMConnector.Axapta2
Set ax = New AxaptaCOMConnector.Axapta2
Dim aa As Object
ax.Logon2 "login", "password", "", "", "", "", "C:\axapta\user.axc"
ax.Logoff
Set ax = Nothing
End Sub
код срабатывает только один раз. при повторном нажатии на кнопке появляется ошибка "Buffer overrun detected! ...."
собственно это нужно для программы работающей в фоновом режиме для отслеживания соединения и пытающейся восстановить его если соединение разорвано
Старый 23.11.2006, 14:38   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от sschainik Посмотреть сообщение
Как программно разорвать или восстановить соединение через AxaptaCOMConnector? Пробовал сделать это сделать следующим путем
Private Sub Command1_Click()
Dim ax As AxaptaCOMConnector.Axapta2
Set ax = New AxaptaCOMConnector.Axapta2
Dim aa As Object
ax.Logon2 "login", "password", "", "", "", "", "C:\axapta\user.axc"
ax.Logoff
Set ax = Nothing
End Sub
код срабатывает только один раз. при повторном нажатии на кнопке появляется ошибка "Buffer overrun detected! ...."
собственно это нужно для программы работающей в фоновом режиме для отслеживания соединения и пытающейся восстановить его если соединение разорвано
Есть мнение, что часто устанавливать/разрывать соединение через COM-коннектор может быть не очень удачной идеей. В частности, некий Brandon George пишет в своем блоге:
Цитата:
With that said, there are some things to keep in mind about the Business Connector. For instance it's a COM / COM+ registered object, that come become unstable if not maintained correctly. Basically what I mean by that is if you are connecting and dropping the connection over and over, the over head generated from such transactions can become an issue, and I have noticed the COM connector becomes unstable or 'flaky'. The best way to manage such a thing that I have found is create a web service that wraps the objects you need or want access to, and only open the connection on the first time the Web Service is called. Then store the object in memory (cache) and use the open connection throughout all of the rest of the calls. You still have to handle the proper closing of the object, that's why you only close it when the web serivce or App is truly shuting down, and unloading from memmory.
т.е. примерно
Цитата:
Business Connector - хорошая штука для связи AX с другими приложениями, но надо иметь в виду некоторые его особенности. К примеру, то, что это - зарегистрированный объект COM/COM+, который может стать нестабильным, если не поддерживать корректно его работу. Я имею в виду то, что если вы соединяетесь и потом разрываете соединение, и так продолжается снова, снова и снова, то дополнительная нагрузка, создаваемая такими транзакциями, может создать серьезные проблемы, и я замечал, что COM-коннектор может начать вести себя нестабильно или попросту "чудить". Лучший способ справиться с этим, который я нашел, - это создать web-сервис как обертку для объектов и данных, необходимых для работы, и открывать соединение лишь при первом запуске этого web-сервиса. Затем можно закэшировать созданный COM-объект и использовать открытое соединение для всех остальных вызовов. Необходимо также позаботиться о корректном завершении работы с объектом, поэтому делать это нужно, когда web-сервис или приложение завершает собственную работу и выгружается из памяти.

Последний раз редактировалось gl00mie; 23.11.2006 в 15:29.
За это сообщение автора поблагодарили: Logger (3).
Старый 23.11.2006, 14:38   #3  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
А как часто(во времени) вы щёлкаете кнопочкой.
Дело в том что на "разлогиновку" требуется некоторое время.

Возможно, при повторном нажатии на кнопку вы пытаетесь прилогинится ещё фактически не разлогинившись.
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
Старый 24.11.2006, 08:49   #4  
sschainik is offline
sschainik
Участник
 
7 / 10 (1) +
Регистрация: 23.11.2006
Как часто это будет пользоваться пока незнаю. Вообще это нужно для восстановления связи в случае если отключилась локальная сеть (бывает так что сеть отваливается буквально на несколько секунд), и как после этого воосстановить связь? пробовал подключаться к аксапте, после этого выдирал шнур локальной сети, подключал шнур обратно и опять LOGON2 заново, всегда появлялось сообщение "Buffer overrun detected! ....", даже если не логиниться и аннулировать при разрыве соединение, то при создании подключения с нуля появляется это же сообщение. Единственно что только запускать приложение заново! но это можно забыть про фоновый режим
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Получение структуры таблиц... через AxaptaCOMConnector Dolter DAX: Программирование 1 23.12.2007 14:57
Закрыть AxaptaCOMConnector из AXAPTA Владимир Максимов DAX: Программирование 10 26.11.2007 17:07
Запуск программы из Аксапты через 2-хзвенку Migel_84 DAX: Программирование 25 27.04.2006 09:41
Соединение с двумя таблицами в DS формы Zepp DAX: Программирование 3 21.04.2006 15:16
Печать накладной и счёта-фактуры через AxaptaCOMConnector mpogorelov DAX: Программирование 0 25.02.2005 18:28

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

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

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