Группы сообщений в WebSphere MQ

У меня есть требование обрабатывать JMS-сообщения (через MDB) таким образом, чтобы сообщения, принадлежащие определенной группе (установлен идентификатор группы), потреблялись одним и тем же экземпляром bean-компонента. В этом случае мне нужно, чтобы сообщения с одним и тем же идентификатором группы обрабатывались последовательно (хотя порядок сообщений не имеет значения), и привязка их к одному и тому же экземпляру MDB должна обеспечивать это.

Сообщения не несут какой-либо порядковый номер (так как он не имеет отношения к делу), и мы не знаем, какое первое или последнее сообщение в группе (теоретически может «никогда» быть последним сообщением в группе). Мы хотим, чтобы они были доставлены, как только потребитель сможет их получить.

ActiveMQ предоставляет именно эту функцию ( http://activemq.apache.org/message-groups.html ), просто задав JMSXGroupID. Однако мы привязаны к WebSphere MQ. Все, что я выяснил до сих пор, это то, что можно собирать сообщения одной и той же группы в очереди и использовать MessageSelector для получения сообщения «Последнее сообщение в группе», как описано в http://www.ibm .com / developerworks / websphere / library / techarticles / 0602_currie / 0602_currie.html . Однако мы бы предпочли более чистый способ (как в ActiveMQ).Кто-нибудь знает, как добиться такого поведения в WebSphere?

Спасибо!

7
задан Morag Hughson 18 September 2014 в 16:45
поделиться