How to reprocess holding (on-hold) messages
Use Case: The messages in message monitoring are in status ‘Holding’. Re-triggering this message would again put the status on ‘Holding’. We cannot cancel these message directly from the message monitoring. And here is why – when the quality of service in a message transmission is maintained as EOIO (Exactly Once In Order), the messages are processed exactly once in order. It means, the system will not allow the next message to be processed until the current one is successfully processed or has gone in error.
In such case, if any one message fails / not delivered, then any further messages, will go on hold.
Note: Before cancelling or deleting the message, you need to take prior approval from business. For instance: we may not always have the feasibility to retrigger the failed/stuck messages after deleting/cancelling them. Also, sometimes the messages would contain business critical data.
Resolution:
- Find the failed message and cancel / delete it.
- Now cancel / reprocess all the ‘Holding’ messages. Delete the initial message which when in error and then follow the same procedure for the rest.
- Trigger the interface again (or reprocess the latest ‘Holding’ message).
and you should be good to go.
Here is what I have learnt new:
Go to the following link http://<hostname>:<port>/MessagingSystem. There are various options here. Viewing the message, cancelling them and navigating is easier here.
How to do it?
Go to the path – http://<hostname>:<port>/MessagingSystem. The homepage looks like this:
Go to, Sent Messages –> Asynchronous
You will find the log of all messages here.
Select the appropriate message type and click “Enter”
You will find all the messages of the type selected
You can also use extended search to customize your search
Here you need to search for the message that was failed or not delivered successfully.
Holding
Not Delivered
Here you can see that the messages at 17:17:40 was not delivered, due to which the message at 17:22:48 went on hold.
Now just delete the ‘Not Delivered’ message. you could also edit this message and try to reprocess it. But ‘Delete’ is highly recommended. However, ensure that you delete the messages only when you are certain that your data in the message is corrupted or is no longer required at the receiver.
After you delete this error message you can now cancel all the ‘Holding’ messages (either from the same User Interface or Via Message Monitoring). Just remember, you must cancel the messages in the reverse order they were triggered. Else you will get this error:
Also, you can view the details and audit log to ensure check, which interface the message refers to.
Here is how the details and log looks: