0 Replies Latest reply: Oct 3, 2011 1:45 PM by AmitSoaDev RSS

    Unable to make message return to Inbound JMS if composite errors out

    AmitSoaDev
      Hi,

      I am trying to implement the following scenario in 11g

      JMS Adapter dequeues ----> BPEL ---> Insert into DB
      The DB insert fails (trying to insert a value larger than column width).

      The default behaviour is - the message is dequeued from JMS but has not been inserted.
      Looking at the trace, I can see that the JMS adapter is shown completed successfully (which is expected, as the JMS adapter has invoked the BPEL asynchronously)

      What I want is, the message should be returned to JMS queue.

      I have tried this (basically making the interaction synchronous, so that the error hits the JMS adapter transaction, and hence rolls it back)

      1. Modified the WSDL of this composite to make the async call as sync (this is suggested in the soa_best_practices_1013x_drop3.pdf, which is for 10g, but in another test, I have been able to make it work for DB adapter in 11g)
      2. Added a reply activity at end and connected it to client

      By making this change, I can see that the JMS adapter is shown errored out in the trace. BUT, the message is not there.

      I can see the following error
      Non Recoverable System Fault :
      Resource adapter invoked onReject() without an associated exception

      Googling this got me no results. I have a feeling that maybe JMS adapter did not implement this method (because in my other test, the DB adapter did not show any such error, and it was able to rollback the changes to the database)

      Any ideas are welcome.

      Thanks
      Amit