MQ Listener Notification documents out of sync on IS client queue
URL: [URL]http://advantage.webmethods.com/article/?id=1614337859[/URL]
Issue
Running IS v7.1.2 with Broker 7.1.2 on Solaris 10.
In a Production environment all 3 IS’s have a “client prefix” and “client group” set to the same value.
The interface is designed to pick up messages off an MQ queue via an asynchronous webMethods MQ Listener notification.
A serial trigger subscribes to this MQ Listener Notification document. The trigger’s capacity and refill are both set to ‘1’ since the requirement is that the MQ messages must be processed in the order that they are placed on the MQ queue.
The behavior observed is that messages are being processed out of sequence.
For example, if there are 50 messages on the MQ queue, the IS trigger processes message number 20 before processing message number 8.
Is there a way that documents can be processed in the order they were placed on the MQ queue?
Resolution
The MQ Adapter, in a clustered or non-clustered environment, does not guarantee the order of messages received from WebSphere MQ.
With 3 IS instances involved, each one of them is listening to the same MQ, and message ordering cannot be guaranteed at the trigger level. Each of the IS instance will pick and process the message at its own pace and publish the document. That is why message ordering cannot be enforced.
It has to be the application processing the notification documents that must handle any reordering of messages if it’s required.
You can see this discussed on page 60 of the webMethods_WebSphere_MQ_Adapter_User’s_Guided, under the section titled �WebSphere MQ Adapter in a Clustered Environment�, sub-paragraph ‘Ordering of Documents’.
“Neither the WebSphere MQ Adapter nor WebSphere MQ guarantee the order of messages received from WebSphere MQ. The application processing the notification documents must handle any reordering of messages that is required.”