Problem recovering message in an MQ series queue

Hi everyone
Could you help solve a problem please?
I am using an MQ series as JMS provider. To retrieve messages, I have a JMS trigger pointed on the MQ queue.

The requirements are:

  • the trigger gets a document from the MQ queue and executes the IS trigger service.
  • if the trigger service fails, the document stays on the MQ queue
  • the trigger keeps retrying the same document - if it succeeds, the document is removed from the MQ queue

To meet these requirements, here’s what I do:

Trigger Settings
• Set trigger ‘Retry failure behavior’ property to ‘Suspend and retry later’
the “Suspend and Retry Later” option provides a way to resubmit the message programmatically and prevents the trigger from retrieving and processing other messages until the cause of the transient error condition has been remedied.
However, my problem is that, in case of a retry failure, the trigger is suspended but the message is not recovered in the MQ series.
I highlight the fact that it works well when I have a broker as JMS provider.
In other words, my problem is that,unlike the broker JMS, the IS does not recover the message in the MQ series queue. I tested with both.

  1. in case of broker jms provider: the trigger is suspended and the message is recovered
  2. in case of MQ series: the trigger is suspended but the message is not recovered
    I don t know the reasons of such differences!

On a different note, why don’t you use WebSphere MQ Adapter that is available with webMethods suite? You can create the connection of type WebSphere Transactional MQ Connection in MQ Adapter which does the same job what you are looking for.

My 2 cents.

Senthil

thank you Senthil, the problem is that we have a technical departement that obliges us to use jms triggers for consuming messages.

hmm… not sure if we can achieve that transactional behavior with jms triggers… create a support incident with SAG if u don’t get an answer…

-senthil

Hello, In fact there was a problem in the creation of the jms trigger. I recreated it properly. And now it works. The conclusion is: whatever the JMS provider is, the Integration server recovers the jms message if we set up correctly the trigger parameters

Thanks for confirming back…

-Senthil

I add to my last post that you have to declare your MQ file as a persistent. otherwise the message will not be recovered