Transaction Management in BPEL


In Oracle release 11g, transaction management facilitates you to use the underlying JTA (Java Transaction API) infrastructure which is used for the execution of the components. Here you will learn the transactions and behavior for Oracle BPEL process manager:-
bpel.config.transaction  is the property which decides about the transaction behavior of your BPEL process. Setting up this property configures the transaction behavior for the BPEL process instances with initiating calls.
In every BPEL process (while creating BPEL process) we have to identify the template for the BPEL process being created. In other words your BPEL can be synchronous, asynchronous, one-way. In any of these cases a property is added in Composite.XML file and that property is quite as below:-



In above code if you see the values against the property named “bpel.config.transaction” you can see the texts ‘required’ and ‘requiresNew’ under the braces. Either of them can exist as the value for the given property.


What does ‘required’ and ‘requiresNew’ mean?

BPEL's Global Transaction ("Required") -initial BPEL starts global transaction and all other called-services come under this global transaction to make a single global unit which helps in commit or rollback of the whole transaction in error handling.
In above example there is a BPEL (having transaction property as "required") which initiates the global transaction in association with underlying application server transaction manager. In this global transaction many other resources are involved such as a BPEL service, AQ adapter, JMS adapter, DB adapter etc. which as all being called by the mail BPEL service. There all resources must be having XA-enabled data sources and the bpel must have "required" transaction property enabled. Despite of it there is one more DB adapter which has non-xa enabled data source.



Featured Post

How to create an AQ (Advanced Queue) on Oracle DB

Keywords: Advanced Queue, AQ, AQ Creation, Queue, Queue Creation, How to create a queue, Queue in SOA, SOA, OSB, BPEL -------------------...