powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / "Устаревшие" сообщения MQ
15 сообщений из 15, страница 1 из 1
"Устаревшие" сообщения MQ
    #37618934
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!

На одном сервере A (OC Win Server 2008) установлены WAS 6.1.0.13 и WMQ 5.3.14. Приложение, работающее из-под WAS, кладет в очередь запросов сообщение и читает ответ из очереди ответов. На удаленном сервере B установлен Trigger Service. После появления в очереди запросов сообщения инициируется событие для запуска приложения-обработчика на сервере B. Приложение-обработчик, получив запрос и выполнив определенные действия, кладет ответ в очередь ответов. Из очереди ответов сообщение забирается приложением WAS.
Есть проблема. Иногда происходит так, что сообщение из очереди запросов обработчиком сервера B не забирается. Предполагаю, что это происходит из-за кратковременных сбоев в сети. Возможно, успевает сработать триггерное событие, но в этот момент обработчик уже не может забрать сообщение. Затем никакое другое сообщение уже не обрабатывается. В очереди запросов накапливаются сообщения, приложение WAS висит. Срок жизни проблемного сообщения (Expiry) уже истек, но оно не удаляется, и проблему решает только принудительная очистка очереди запросов.

Вопрос: Можно ли настроить MQ так, чтобы "устаревшие" сообщения удалялись автоматически? Или генерить повторное событие обработчику, чтобы тот снова пытался забрать сообщение? Почему в этой ситуации другие сообщения из очереди запросов не обрабатываются, хотя в настройках Triggering указан TriggerType=Every? А может, проблема в другом? Где можно покопать?

Заранее благодарен
С уважением, Семен Попов
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37621710
Semen Popov,

Сообщения с истекшим сроком жизни удаляются из очереди автоматически при первой операции MQGET на этой очереди.
Т.е. если к очереди никто не обращается, то в ней могут "копиться" сообщения с истекшим Expiry.
Если же просроченные сообщения остаются в очереди и после операции MQGET, то либо это бага, либо таки MQ считает что по этим сообщениям не закрыта транзакция, т.е. они не просто "лежат", а находятся в обработке.

Триггерные сообщения генерируются в очередь триггера только в том случае, если очередь триггера "слушается", т.е. input use count для этой очереди больше 0.
Если я правильно понял, триггер-монитор подключен к менеджеру MQ через клиентский канал. В этом случае может возникать ситуация, когда триггер-монитор считает что подключен к серверу, а с т.з. сервера соединение уже "отвалилось".

Тут нужно смотреть настройки TCP/IP на сервере и на клиенте, в частности параметр KeepAlive. Не помню есть ли параметр KeepAlive на канале SRVCONN для версии 5.3. Если есть, нужно проверять его значение.
Не мешает проверить версию клиента MQ там, где стоит триггер-монитор.

Ну и дальше нужно смотреть протоколы работы триггер-монитора и приложения обработчика, а так же лог-файлы клиента MQ (<MQ_ROOT>\error\AMQERRxx.log). Нужно однозначно определить на каком этапе происходит ошибка. Либо не генерируются сообщения триггеру, и тогда нужно разбираться с триггер-монитором. Или же триггер срабатывает и запускает обработчик и проблемы с получением сообщений уже у обработчика.
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37621783
john lennon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen Popov,

для того что сообщения удалялись автоматически из очереди в заголовке запроса mq-сообщения присвоить MQMD.Expiry = " время жизни сообщения в мс ".

Если вы это сделали и оно не удаляется, тогда советую обратится в IBM-саппорт.
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37622565
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Хабаров,
вот какие ошибки выдает менеджер очерередей:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
19.01.2012  09:15:52
AMQ7227: WebSphere MQ encountered the following network error: Сервер RPC
недоступен.

EXPLANATION:
 MQ failed to successfully complete a network operation due to the specified
error. If the error is encountered on systems that are part of a Windows 2000
domain it can indicate incorrect DNS or WINS configuration.
ACTION:
Ensure that your network is functioning correctly. On the Windows platform
check DNS and/or WINS settings to ensure that domain controllers, used for
authentication or authorisation functions, are accessible. 
Сегодня примерно в это время произошло зависание.

А еще часто бывает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
18.01.2012  11:20:20
AMQ9208: Error on receive from host 10.7.7.3.

EXPLANATION:
An error occurred receiving data from 10.7.7.3 over TCP/IP. This may be due to
a communications failure.
ACTION:
The return code from the TCP/IP (recv) call was 10054 (X'2746'). Record these
values and tell the systems administrator. 
10.7.7.3 - это удаленный хост с обработчиком. Но такая ошибка может возникнуть и для хоста, на котором установлен менеджер (указывается IP менеджера очередей). Т.е. ошибка связи Менеджера очередей с хостом, на котором он установлен. Как это понимать?

Параметр KeepAlive есть. Но флаг не установлен. На закладке TCP Settings в свойствах менеджера не задано ни одного параметра - ни порт, ни Library1, ни KeepAlive (все пусто). И еще - как проверить версию MQ? В частности, меня интересует, какая версия фикспака MQ? Наверно, есть какие-то команды? В справке MQ Services выдается версия 5.3.0, MQ Explorer - 5.3. Чувствую, что у меня фикспак не накатан.
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37622650
john lennon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37622679
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для версии 5 dspmqver не работает.
Нашел команду mqver. Вообщем, показывает версию 530.14 CSD14. Значит, фикспак 14, вроде.

Евгений ХабаровТриггерные сообщения генерируются в очередь триггера только в том случае, если очередь триггера "слушается", т.е. input use count для этой очереди больше 0.
Если я правильно понял, триггер-монитор подключен к менеджеру MQ через клиентский канал. В этом случае может возникать ситуация, когда триггер-монитор считает что подключен к серверу, а с т.з. сервера соединение уже "отвалилось".
Триггер-монитор подключен именно через канал клиент-сервер.

Евгений ХабаровТут нужно смотреть настройки TCP/IP на сервере и на клиенте, в частности параметр KeepAlive. Не помню есть ли параметр KeepAlive на канале SRVCONN для версии 5.3. Если есть, нужно проверять его значение.
Не мешает проверить версию клиента MQ там, где стоит триггер-монитор. Версия клиента 1.4.1. Что подкрутить?
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37622790
Semen Popov Версия клиента 1.4.1. Что подкрутить?
Это как ? Версия клиента MQ 1.4.1 - не верю :) Какая платформа/ОС?
Как минимум версию клиента попробовать поставить аналогичную версии и фикспаку сервера.
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37622867
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ХабаровSemen Popov Версия клиента 1.4.1. Что подкрутить?
Это как ? Версия клиента MQ 1.4.1 - не верю :) Какая платформа/ОС?
Как минимум версию клиента попробовать поставить аналогичную версии и фикспаку сервера.Может, я напутал. В одном из файлов в директории инсталяции вычитал. Извиняюсь. А как проверить версию клиента? Самого пакета инсталяции нет. Ставил другой человек.
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37622887
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОС на менеджере MQ Win server 2008 r2, на клиенте - Win server 2003
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37622918
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Хабаров,

по-моему тут изложена аналогичная ситуация. И Вы там даете рекомендации. А как на клиенте выставить KeepAlive?
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37624062
Semen PopovМожет, я напутал. В одном из файлов в директории инсталяции вычитал.
Команда та же, как для сервера, так и для клиента, mqver для версии 5.x, dspmqver для 6.0 и выше.
Если в общий PATH исполнимый каталог клиента не внесен, то искать эту команду в подкаталоге bin клиента.
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37624245
Semen PopovЕвгений Хабаров,

по-моему тут изложена аналогичная ситуация. И Вы там даете рекомендации. А как на клиенте выставить KeepAlive?
В первую очередь этот параметр (таймауты) нужно настроить на уровне ОС.
Enabling TCP/IP KeepAlive on Windows
Windows TCP/IP Registry Entries

Вторым шагом нужно включить использование KeepAlive (Чтобы MQ выставлял флажок при создании сокета).
Setting the TCP/IP KeepAlive interval to be used by WebSphere MQ
To enable keepalive for a client, you need to define the following registry key:
HKLM\SOFTWARE\IBM\MQSeries\CurrentVersion\Configuration\TCP
and define a string value of 'KeepAlive' set to 'Yes'
Дополнительно, если SRVCONN таки "теряет" клиентов, есть еще такой документ: Number of client channels increasing
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37626684
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ХабаровКоманда та же, как для сервера, так и для клиента, mqver для версии 5.x, dspmqver для 6.0 и выше.
Если в общий PATH исполнимый каталог клиента не внесен, то искать эту команду в подкаталоге bin клиента.Я не знаю, может у меня клиент урезанный, но никаких подкаталогов в директории установки нет. Там только файлы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
msgs.mc
remove.exe
servicename
setup.exe
setup.ini
trige22.exe
trigsvc.exe
Подкаталога bin нет. mqver системой не найдена.

В файле msqs.mc написано:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
MessageIdTypedef=DWORD

MessageId=0x100
Severity=Informational  
Facility=Application
SymbolicName=STARTING
Language=English
WebSphere MQ Client Trigger Service V1.4.1 (28 Aug 2006) Starting.
.
.
Вот и решил, что это версия 1.4.1.
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37626742
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ХабаровВ первую очередь этот параметр (таймауты) нужно настроить на уровне ОС.
...

В ОС Win Server 2003 на клиенте я не нахожу ветки реестра HKLM\SOFTWARE\IBM\MQSeries\CurrentVersion\Configuration\ TCP и HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ VxD\MSTCP , о которых написано в представленных вами ссылках.
...
Рейтинг: 0 / 0
"Устаревшие" сообщения MQ
    #37626841
Semen Popov,

А, это похоже версия вот этого: MA7K: WebSphere MQ for Windows - Trigger monitor service
Не знаю как в версии 1.4.1, но в нынешней версии этой программе требуется клиент MQ.
Программа должна обращаться к библиотеке mqic32.dll, стоит поискать эту dll и посмотреть ее версию.
Список используемых DLL у исполняющейся программы можно посмотреть например с помощью Sysinternals Process Explorer для Windows .
Ну а уже у клиентской библиотеки mq (mqic32.dll) можно посмотреть свойства и узнать ее версию.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / "Устаревшие" сообщения MQ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]