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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.04.2007, 11:55   #1  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Talking Сообщения пользователям в аксапте - порядок важен!
Клиент 3.0 sp3 (build 3733)
Отправляем пользователю А 2 сообщения: сначала "1", потом "2".
Клиент А закрывает пришедшие сообщения в порядке: сначала "1", потом "2"
Итог: аксапта больше не реагирует на внешние раздражители , но приложение не зависло, hot key Alt-F4 - Аксапта предлагает закрыться.
Cправедливо для клиентов sp3,sp4; на sp2 данная фича не работает.
__________________
--- SHiSHok
Старый 13.04.2007, 14:56   #2  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
у кого стоят SP выше или KR : баг не устранили?
использую рассылку сообщений - неприятно выходит как то.
может есть у кого идеи как избежать неприятной ситуации.
__________________
--- SHiSHok
Старый 13.04.2007, 22:16   #3  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
У меня на 3.0 сп5 кр3 воспроизвелось .

Бросайте это занятие как неперспективное. IMHO.

В 3.0 есть проблемы с отправкой сообщений на другой АОС, насколько я помню.

А в 4.0 от данной функции отказались.

В поиске можно найти, как использовать в мирных целях net send...
__________________
С уважением,
glibs®
Старый 16.04.2007, 11:48   #4  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
net send я то реализовал, все красиво, НО
1) при отсутствии получателя очень большая задержка
2) нельзя гарантировать присутствие получателя в сети (даже по списку пользователей AOC)
вывод: при отправке через net send не не застрахованы от больших задержек при отправке (для моего случая это непозволительно)

Отправка сообщения по AOCP лишена недостатка больших задержек, посему остается использовать ее.
__________________
--- SHiSHok
Старый 16.04.2007, 19:53   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от SHiSHok Посмотреть сообщение
net send я то реализовал, все красиво, НО при отсутствии получателя очень большая задержка. вывод: при отправке через net send не не застрахованы от больших задержек при отправке (для моего случая это непозволительно) Отправка сообщения по AOCP лишена недостатка больших задержек, посему остается использовать ее.
Если не секрет, в чем непозволительность больших задержек? Почему нельзя сделать отправку сообщений асинхронной - в отдельном потоке (thread)?
Старый 17.04.2007, 09:29   #6  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Если не секрет, в чем непозволительность больших задержек? Почему нельзя сделать отправку сообщений асинхронной - в отдельном потоке (thread)?
рассылка сообщений участвует в локализованом механизьме резервирования. про потоки и асинхронность хорошая идея. Но я с ними не работал поэтому надо будет детально изучить механизм, а как обычно все должно быть сделано уже и давно ,поэтому пока оставлю так. Может вкратце справочные материалы изложите по работе с потоками. Функцию "NetMessageBufferSend" я реализовал, остается ее правильно вызвать из потока.
__________________
--- SHiSHok
Старый 18.04.2007, 18:41   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от SHiSHok Посмотреть сообщение
про потоки и асинхронность хорошая идея. Но я с ними не работал поэтому надо будет детально изучить механизм, а как обычно все должно быть сделано уже и давно ,поэтому пока оставлю так. Может вкратце справочные материалы изложите по работе с потоками.
Вкратце смотреть надо не только в сторону работы с потоками, но и на работу с объектами синхронизации в Windows. Среди таких объектов: семафоры (semaphore), взаимоисключения (mutex), события (event)... Плюс есть набор инструментов для работы с разделяемыми ресурсами, типа критических секций, SRW-блокировок, interlocked-переменных, etc. Так вот, сценарий работы будет примерно такой: основной поток создает объекты синхронизации (скажем, event'ы), очередь заданий (адресаты для отправки сообщений) и параллельный поток для обработки этих заданий. Параллельный поток после создания ждет какого-то события, которое означало бы, что в очереди есть задания на обработку, а также события, которое бы означало, что заданий больше не будет, и надо завершить свою работу. Затем в основном потоке начинается какая-то обработка, по ходу которой в очередь помещаются задания, и "дергается" соотв. объект синхронизации, чтобы фоновый поток мог начать их обработку. После окончания работы в основном потоке "дергается" еще один объект синхронизации, по которому фоновый поток завершает свою работу. Ну это так, на вскидку
Работу с потоками и объектами синхронизации можно посмотреть по следующим ссылкам
AOS и многопроцессорная машина - синхронизация потоков
Фоновый поток в Аксапте
Фоновый поток - реализация концепции агента
Фоновый поток - через AOSLoadGen
ERPKB : Таймер без формы
За это сообщение автора поблагодарили: SHiSHok (2).
Старый 12.01.2008, 00:28   #8  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от SHiSHok
...
1) при отсутствии получателя очень большая задержка
...
Долго мне ваше утверждение не давало спать спокойно.

Сегодня проверил. Вот такая конструкция

WinAPI::shellExecute("cmd", "/c net send ddd 123", "", "", 0, false);

в джобе отрабатывает мгновенно. Это при том, что никакого "ddd" в сети, естественно, нет. При этом из командной строки действительно висит минуту примерно (мерял на глаз).

Как проявляется задержка?
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: zemlyn (1).
Старый 15.01.2008, 16:13   #9  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Проверил. Акса действительно мгновенно отрабатывает. При этом: создается процесс cmd и 2 netsend (почему 2 непонимаю) и дальше время отработки net send никоим образом не волнует процесс Аксы (нет юзера - висит около минуты и умирает). В общем то такой метод вызова то что надо. А я вызывал следующим образом:

X++:
// SHiSHok.FRA  20070419
static int NetSend(str _hostTo, str _msg)
{
    DLL             DLL =  new DLL('NetApi32.dll');
    DLLFunction     DLLnetSend = new DLLFunction(DLL,"NetMessageBufferSend");
    binary          hostTo, msg;
    ;

    #WinAPI

    DLLnetSend.arg(ExtTypes::DWord, ExtTypes::Pointer, ExtTypes::DWord, ExtTypes::Pointer, ExtTypes::DWord);
    DLLnetSend.returns(ExtTypes::DWord);

    hostTo = winapi::ansi2unicode(_hostTo);
    msg = winapi::ansi2unicode(_msg);

    return DLLnetSend.call(0, hostTo, 0, msg, strlen(_msg)*2);
}
__________________
--- SHiSHok
Старый 15.01.2008, 16:17   #10  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Единственное но - это что один такой net send около 8 метров откушивает. т.е. 20 хостов не доступно - 160 метров ОЗУ кусь на минуту. как бы и не много, но и не мало.
__________________
--- SHiSHok
Старый 16.01.2008, 01:04   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от SHiSHok Посмотреть сообщение
Единственное но - это что один такой net send около 8 метров откушивает. т.е. 20 хостов не доступно - 160 метров ОЗУ кусь на минуту. как бы и не много, но и не мало.
Из этих 8 метров бОльшая часть - код и разделяемые данные самого net.exe и используемых им библиотек. За счет виндовых механизмов управления виртуальной памятью эти код и данные из адресных пространств разных процессов отображаются на одни и те же страницы физической памяти, т.е. реально в памяти находится лишь один экземпляр, к примеру, секции кода какой-нить kernel32.dll... так что ничего страшного при запуске 20 экземпляров программы, если она сама динамически не выделяет себе кучу памяти, не произойдет.
Старый 02.02.2008, 03:55   #12  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от glibs Посмотреть сообщение
В поиске можно найти, как использовать в мирных целях net send...
у нас на проекте у некоторых пользователей были остановлены соответствующие службы (второй программист) и при тестировании модификации net send просто не доходил ток что net send не панацея мы дублируем все сообщения по почте из практики это даже действенней чем net send
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Старый 03.02.2008, 00:21   #13  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от ivas
...
ток что net send не панацея
...
Гм...

Вы так говорите, как будто Outlook уже встроили в Windows и его нельзя не использовать.

Помнится мне одна презентация. Рассказывал про alerts в 4.0. Ну народ оживился. Было много вопросов. В конце состоялся такой примерно диалог (оформлено художественно, написано по памяти, не очень близко к тексту).
— А как оно сообщит?
— Вы с Outlook работаете?
— Да.
— А как Outlook отображает окно с уведомлением о новой почте представляете?
— Да, конечно.
— В Аксапте уведомления точно так же всплывают.
— (Подумав человек спрашивает коварно) А если... Аксапта не будет запущена, то уведомление придет?
— А если Outlook не будет запущен, то уведомление о пришедшем уведомлении электронной почты всплывет?
— А, понятно.

В конце концов компьютер может быть не включен . По этому поводу мне вспоминается шутка какого-то сотрудника ЦРУ, у которого спросили, какой компьютер самый безопасный. Он сказал примерно следующее. Компьютер должен быть отключен от локальной сети, а еще лучше выключен и закопан глубоко под землю в месте, которое никто не знает.

Мораль моей басни вот в чем. Принцип "Против лома нет приема" работает не только в случае с net send.
Цитата:
Сообщение от ivas
...
из практики это даже действенней чем net send
...
Практика у всех разная. По моей практике на некоторых проектах востребованной оказывается почта, а net send не востребован. Не некоторых наоборот. А на некоторых востребованным оказывается и то и другое.
__________________
С уважением,
glibs®
Старый 03.02.2008, 01:57   #14  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от glibs
...
Мораль моей басни
...
Забыл еще про басню с японской циркуляркой и русскими мужиками...

__________________
С уважением,
glibs®
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Можно ли в Аксапте отправлять активным пользователям сообщения Grey DAX: Администрирование 33 02.06.2009 12:13
Как дать доступ к Аксапте внешним пользователям? mazzy DAX: Администрирование 43 29.08.2008 15:46
Порядок записей при вставке DreamCreator DAX: Программирование 2 31.01.2007 14:29
Система оповещений в Аксапте (события в Аксапте) raunio DAX: Прочие вопросы 1 29.09.2005 15:44
Размышления на тему “Системы контроля версий в Аксапте”. Андре DAX: База знаний и проекты 31 07.02.2005 12:29

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

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

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