Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Terminating an instance after tranaction rollback

Peter van Nes at The Future GroupOct 27 2016 — edited Feb 26 2020

Based on the article "How to terminate an instance after transaction rollback and return response to caller" published on blogs.oracle.com i created a similar composite.

What i am trying to accomplish is that when a asychronous service is invoked, an callback is executed even if the duration of the services takes longer than the BPEL EJB Timeout.

The composite has two bpel processes, Test_B_Bpel and watchdog.

Test_B_Bpel is asynchronous and has a correlationset with property aliasses on the Receive and Invoke.

The flow of Test_B_Bpel is;

  • Dehydtrate
  • Invoke a third synchronous BPEL which takes more slightly less than 45 seconds (the rsync timeout) to complete.
  • Wait 200 seconds
  • Invoke an fourth webservice which will return a remotefault
  • Invoke the watchdog bpel process.
  • Throw a rollback

In an eventhandler (OnEvent) the Invoke is executed, whereafter the instance is terminated.

test_b.png

The bpel process watchdog has the property ' bpel.config.transaction = requiresnew' and invokes the operation in Test_B_Bpel triggering the OnEvent eventhandler.

This works fine as long as the lifetime of the instance is less than the BPEL EJB Timeout.

When the transaction of the Test_B_Bpel takes more than the BPEL EJB Timeout the callback is never received.

test_b2.png

Is there something i missed in the article, or is the article wrong ?

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 24 2016
Added on Oct 27 2016
0 comments
361 views