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)