2014-01-21 5 views
0

Я собираюсь реорганизовать приложение брокера, написанное для websphere MQ. В существующем приложении, при чтении сообщения из очереди, следующие опции Создаются:Серия Websphere MQ - MQGMO_WAIT

MQConstants.MQGMO_WAIT и

waitInterval = 1000 (миллисекунды).

В нашей заявке нет гарантии, что мы получаем сообщение каждую секунду. Мы не можем получать сообщения даже в течение нескольких часов. Я не уверен, почему создатели этого приложения выбрали для waitInterval = 1000 вместо установки waitInterval в MQWI_UNLIMITED. В настоящий момент в коде есть блок catch, который ничего не делает, когда происходит MQException.MQRC_NO_MSG_AVAILABLE.

Создатели этого приложения были действительно умными людьми, поэтому я не знаю, почему они выбрали этот подход. Я новичок в серии MQ, так кто может объяснить причину этого?

ответ

1

Ну, это просто проверка очереди каждую секунду для сообщения. Вы можете быть более умными, используя такие функции, как доставка асинхронных сообщений в потоке использования некоторых новых функций MQ, которые не делают много опросов в очереди.