Hi,
I’m trying to understand how client_acnowledge work in webMethods/UM.
I created a flow service that send a message to queue throught JMS, then I created a trigger that receives those messages with Acknowledgement mode = CLIENT_ACKNOWLEDGE.
Inside the flow service that be executed by the trigger, I put a EXIT to raise a error (Signal = Failure).
When I run this services the messages are consumed even when CLIENT_ACKNOWLEDGE is configured.
My questions:
How avoid the messages are consumed when a error occurs?
How CLIENT_ACKNOWLEDGE works?
Where I can find any (good) documentation about webMethods + JMS?
Thanks a lot any help.
For docs, you can refer “10-3_Using_Integration_Server_To_Build_A_Client_For_Jms.pdf”
Thanks for reply and for the indication of documentation.
I’m a newbie in webMethods but know others JMS tools.
My original problem is:
How avoid that a message is lost when occurs a error in the flow service?
According the documentation the client_acknowledge is:
Acknowledge or recover the message only
after the JMS trigger processes the message
completely.
In other words, the reponsability of ack is of the TRIGGER not of the process.
I made some tests even then process raises a exception the ack occurs, IMHO this not must happen.
How control the ack when a exception occurs?
Regards.
Check “durable subscriber”
Also, can you let me know the scenarios where the trigger service will fail? I have some options based on your inputs.
I don’t believe that durable subscriber that be the solution.
Let me explain the process:
1 - JMS Trigger gets the message from queue
2 - Flow Service is started
2.1 - The message is mapped to a variable
2.2 - One operation is executed
2.2.1 - The operation raises a exception
3 - Service ended with error
I created a PoC for validate this scenario and the messages are consumed even when occurs a error, but the message should not be consumed because the flow is ended in error.
In other tools the developer must place a explicit confirmation of ack in the flow when the CLIENT_ACNOWLEDGE is configured, this way the message is removed of queue only the flow execute the ack activity, whether in success or in error.
As I see in webMethods the JMS TRIGGER encapsulate all of this, but don’t have any control when flow end in error.
Whatever is result of flow the ack will be executed and the message will be removed from queue.
How control the ack when a exception occurs?
I attached a image of my PoC to validate this scenario.