В WAS я создал очередь jms X. Я также создал еще одну очередь Y и в MQ указываю, что Y является очередью отмены для X.
Теперь для X, если я укажу максимальное количество повторных попыток: 3 и порог отмены равно 2, это означает, что после 2 попыток, если сообщение не используется X, администратор очередей поместит сообщение в Y. В этом случае максимальное количество повторных попыток (3) никогда не будет достигнуто, поскольку он никогда не будет пытаться в третий раз. И слушатель для X никогда не выйдет из строя. Правильно ли я понимаю?
Максимальное количество попыток MQ и порог возврата
Ответы (3)
Я не очень уверен в интерфейсе jms, но в родном WMQ диспетчер очередей не помещает сообщение автоматически в очередь возврата. приложение должно запросить backout_count, сравнить его с backout_threshold и поместить сообщения в backout_queue.
Вам следует прочитать "Как WebSphere Application Server обрабатывает подозрительные сообщения" -- http://www.ibm.com/developerworks/websphere/library/techarticles/0405_titheridge/0405_titheridge.html
Также важно прочитать "Лучшие практики: общие очереди и прикладные программы WebSphere MQ", прокрутите вниз до выпуска 6 -- http://www.ibm.com/developerworks/websphere/library/techarticles/0512_elkins/0512_elkins.html
Реализация MQ JMS выполняет работу по перемещению сообщения в очередь возврата после достижения порога возврата, установленного в целевой очереди. Если очередь возврата не указана, MQ JMS пытается поместить сообщение в очередь недоставленных сообщений.
Насколько я знаю, в MQ JMS нет концепции повторных попыток. Это может быть связано с WAS/MDB.
странно, что если это решение приложения повторно поставить сообщение в очередь возврата, почему порог возврата определяется в свойстве очереди? не должно ли это пороговое свойство быть определено в приложении.
Очень запутанно.