Suspend JMS trigger and retry later

Hi experts,

I have requirement for send message from ABC system to XYZ system using JMS UM.
I try to create consumer and publisher by esb. I have to make sure message delivered to XYZ system.

this is my bisnis flow :

  1. Send message from ABC application to JMS
  2. XYZ app listen to JMS server by ESB flow service
  3. ESB flow service call XYZ web service.

I’ve been trying to create flow service for testing purpose like below :

  1. Create JMS trigger with config like the first picture below
  2. Create Flow service for handle message like the second picture below

Expected Result :
JMS trigger run three times.

but the real result :
JMS trigger run only once

Please help



Try pub.flow:throwExceptionForRetry instead of Exit flow and signal failure.

Check page 117 in

1 Like

Yes you should use the service pub.flow:throwExceptionForRetry instead of Exit flow and signal failure and the Exit with failure should be in the catch sequence block as always and any child service error with throwException message will get trapped inside the parent/main flow for the error handling framework.


1 Like

hi guys,

Thank you for your reply.

I’ve been trying as your suggestion. My service invoked three times, and then popped message increase.
But all that I want is while my JMS trigger consume message from JMS server and then error occurred in message routing, then message suspended for awhile so my JMS trigger can consume message again.
message popped only when my JMS trigger already processed message successfully.

Sorry for my unclear explanation.

Is there another way to meet this requirement ?
Maybe there is another best practice for this.

Thank you

The way you have your trigger configured, the message should not have been “popped” or dequeued. Once your trigger becomes suspended, the message will sit there until the trigger gets resumed. Did you try resuming the trigger to make sure the same message came through again?



Hi Percio,

my bad, I did various test before and forget to chance Exit flow on failure instead of throwExceptionForRetry and set suspend on error = true.
now suspend on error = false and using throwExceptionForRetry in my message routing service.
Now it’s running well.

Thank you all.

Hi Percio,
is it possible to manually popped current message that causing the trigger suspended?

What messaging provider and what version? With the Broker, there was an easy way to go to MWS and delete the message in the queue. With UM, there may be a way as well depending on your version.


Hi Percio,
thanks for reply. i am using Universal Messaging 9.9