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.