How to terminate an instance after transaction rollback and return response to caller by Rajeev Misra

clip_image002We have seen in several customer scenarios where a Parent BPEL process calls a child BPEL process asynchronously.  If child process runs into any kind of business or system fault,  fault handler sends callback to parent process with failure information.   Please note, since parent had invoked child process asynchronously,  child can’t throw fault back to parent.  Callback is only mechanism to inform parent about the failure in child process execution during asynchronous interaction.   This pattern works fine if transaction of child process is not getting rolled back.   If child process encounters some error where underlying JTA transaction is marked for rollback,  callback may not reach parent process if parent and child are collocated.   This is because,  callback invoke from child to parent will use the child’s JTA transaction to save callback in dehydration store, but since child’s transaction is in rollback state,  callback message information would be rolled back from dehydration store after JTA transaction rolls back.

Second issue is while trying to terminate an instance after it has encountered error which results into transaction rollback.  Since terminate state update of instance in dehydration store will be rolled back with transaction, any attempt to execute terminate in fault handler will be futile.

We are recommending a pattern that could help resolve both of above problems. Please look at the flow: Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Advertisements

About Jürgen Kress
As a middleware expert Jürgen works at Oracle EMEA Alliances and Channels, responsible for Oracle’s EMEA Fusion Middleware partner business. He is the founder of the Oracle SOA & BPM and the WebLogic Partner Communities and the global Oracle Partner Advisory Councils. With more than 5000 members from all over the world the Middleware Partner Community is the most successful and active community at Oracle. Jürgen manages the community with monthly newsletters, webcasts and conferences. He hosts his annual Fusion Middleware Partner Community Forums and the Fusion Middleware Summer Camps, where more than 200 partners get product updates, roadmap insights and hands-on trainings. Supplemented by many web 2.0 tools like twitter, discussion forums, online communities, blogs and wikis. For the SOA & Cloud Symposium by Thomas Erl, Jürgen is a member of the steering board. He is also a frequent speaker at conferences like the SOA & BPM Integration Days, JAX, UKOUG, OUGN, or OOP.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: