JMS tarnsaction Issues.unable to rollback the message into the queue
Hi,
We have a proxy service which put the message into a JMS Queue through service callout.
Now I'm trying to setup a proxy service to dequeue a message from JMS and submit to a javacallout. The java callout has teh code for inserting the messages into database.I want the jms message to remain in the queue/"rollback". I have setup a queue CF with "XA Connection Factory Enabled", and I have a proxy service dequeueing from a queue through that connection factory. In the proxy service I have the "Is XA Reuired" box checked on the "JMS Transport" tab, and in the message flow, I have a java callout with if else condition.The java callout returns a string called status.I have also checked the Transaction Enabled in this proxy service.
If the java callout returns the correct value of status we are logging a message saying success and if the java callout returns a wrong value of status then we are rasing an error in the mesage flow inside else and then in the stage error handler putting reply "with failure" action.
OSB-BS -> JMS
OSB-PS -> javacallout -> Failing Service
I want this to roll back to the JMS queue.
Did I miss anything in setting up the XA support for this process? When I invoke the proxy service, and if teh databse is down then i am losing the message instead the message doesn't get rolled back to the original queue.
Does anyone have an example or docs on how to set this up?
I am using XA connectionfacotry for the databse and the JMS.
I have tried using both reply with success and failure actions in teh stage error handler and service error handler as well.
I am using weblogic 10.3 an ddatabse is oracle 11g and OSb 11gR1.
Its immediate .Can anyone please throw light on this asap.
Thanks Deepthi