Monday, December 10, 2007

My EOIO messages are stuck what can I do?

Asynchronous message can be delivered with a guaranteed order. For this purpose you set the quality of service of the messages to exactly once in order (EOIO) and provide a queue name. All messages are delivered in the same sequence that they were sent from the sender system. For that reason a sequential number is assigned to the message.

When a message runs on an error during the processing, all other messages in the same queue will not be processed until the error is fixed or the erroneous message is cancelled from processing.

The status of the messages in the message monitoring of the adapter framework is Holding.

image

If you want to fix the problem it is necessary to find the message which blocks the queue. If there are a huge number of messages in your system you search for the lowest sequential number in the queue.

If you know the name of the queue that is stuck, you can add the queue name as additional filter criteria. Click on Show Additional Criteria:

image

Enter the queue name to the field Conversation ID and set the parameter Quality of Service to Exactly Once in Order:

image

To be able to see the sequential numbers in the message monitor, you configure the table columns:

image

Add Conversation Id (that is the queue name) and Sequential Number to the table columns:

image

Scroll the window right to see the new columns. Sort the sequential number ascending (the upper triangle):

image

Now the erroneous message is the first message in the display. You can look at the error reason, try to fix the problem and resend or cancel the message to release the queue.

image

After you have resent or cancelled the message all other message will be processed immediately. You have of course to make sure, that the next message in sequence does not run on error too.

No comments:

Blog Archive