rss
SOATUBE
Oracle
Custom Search SOABYTE here

Monday, October 11, 2010

SOA Suite 11g Transaction Semantics Part 1



For BPEL ---- SOA Suite 11g Transaction Semantics Part 2
Mediator
On the inbound side, when mediator is invoked via binding.ws it will create an manage a new transaction, otherwise (e.g. if invoked through an adapter it will inherit the existing transaction)
In more generic terms: 
If a transaction is present, Mediator participates in that existing transaction. If transaction is not present, Mediator starts the transaction
In case of sync (aka sequential) routing rules, they will be all executed in the same transaction, and if an error occurs, a rollback will be issued. 

Note: in this case even a fault policy that is configured against a mediator fault will NOT trigger.
In case of async routing rules, each rule will be executed in a new transaction, and if errors occur, a rollback will happen, and a fault policy can be configured to react to it.
■ All synchronous services are always executed before
asynchronous services.
■ All SOAP endpoints are nontransactional.

Same System — All Asynchronous
■ If the first asynchronous routing rule fails, no other asynchronous routing rules
execute.
■ If any subsequent asynchronous routing rule fails, it tries to roll back all executed
asynchronous rules. If the end service is nontransactional, the rollback does not
happen. The flow as a whole does not roll back.
Same System — All Synchronous
■ If the first synchronous routing rule fails, no other synchronous routing rules
execute. The complete flow rolls back to the inbound service.
■ If any subsequent synchronous routing rule fails, it tries to roll back all executed
synchronous rules, and no other synchronous rules execute. If the end service is
nontransactional, the rollback does not happen. The flow as a whole rolls back to
the inbound service that started the flow.
Same System — Synchronous and Asynchronous
■ If the first synchronous routing rule fails, no other routing rule executes, and the
flow rolls back, including the inbound service.
■ If any subsequent synchronous routing rule fails, it tries to roll back all executed
synchronous rules, and no other synchronous and asynchronous rules execute. If
the end service is nontransactional, the rollback does not happen. The flow as a
whole rolls back to the inbound service that started the flow.
■ If the first asynchronous routing rule fails, no other asynchronous routing rules
execute, but none of the synchronous routing rolls back.
■ If any subsequent asynchronous routing rule fails, it tries to roll back all executed
asynchronous rules (it does not roll back synchronous routing rules). If the end
service is nontransactional, the rollback does not happen. Also, the flow as a whole
does not roll back.
Multisystem — All Asynchronous (Systems A and B)
■ If the first asynchronous routing rule in system A fails, no other asynchronous
routing rule in this system executes. The execution of routing rules in system B
continues normally.
■ If any subsequent asynchronous routing rule fails in system A, it tries to roll back
all executed asynchronous rules in system A. If the end service is nontransactional,
the rollback does not happen. The flow as a whole does not roll back. Execution of
routing rules in system B continues normally.
Multisystem — All Synchronous
■ If the first synchronous routing rule fails, no other synchronous routing rules (in
any system) execute. The complete flow rolls back to the inbound service.
■ If any subsequent synchronous routing rule fails, it tries to roll back all executed
synchronous rules (both on system A and system B), and no other synchronous
rules execute. If the end service is nontransactional, the rollback does not happen.
The flow as a whole rolls back to the inbound service that started the flow.
Multisystem — Both Synchronous and Asynchronous
■ If the first synchronous routing rule fails, no other routing rule executes (on any of
the systems) and the flow rolls back, including the inbound service.
■ If any subsequent synchronous routing rule fails, it tries to roll back all executed
synchronous rules (on any of the systems), and no other synchronous and
asynchronous rules execute across systems. If the end service is nontransactional,
the rollback does not happen. The flow as a whole rolls back to the inbound
service that started the flow.
■ If the first asynchronous routing rule fails on system A, no other asynchronous
routing rules execute on system A. None of the synchronous routing rolls back and
the execution of routing rules in system B continues normally.
■ If any subsequent asynchronous routing rule fails in system A, it tries to roll back
all executed asynchronous rules in system A, (it does not roll back synchronous
routing rules across systems). If the end service is nontransactional, the rollback
does not happen. The flow as a whole does not roll back. The execution of routing
rules in system B continues normally.

Synchronous BPEL Process Calling Synchronous Mediator Routing (Mediator

Native Binding)
If an MEDIATOR endpoint fails, the MEDIATOR flow rolls back all the way to the BPEL
process and the BPEL process instance goes into the Perform Manual Recovery mode. If the conditions for the end point failure are removed, the recovery happens once manually resubmitted from the Perform Manual Recovery option. The same Mediator instance that errored out now succeeds.

Synchronous BPEL Process Calling Synchronous Mediator Routing (SOAP
Binding)
If an Mediator endpoint fails, the Mediator flow rolls back all the way to the BPEL
process and the BPEL process instance is faulted . The error
returned is something like Privileged Security Exception and the real error
for the Mediator endpoint failure is available from an Mediator Control trace.

Asynchronous BPEL Process Calling Asynchronous Mediator Routing (MEDIATOR Native /SOAP binding)
If an Mediator endpoint fails, the Mediator instance is faulted and the instance can
be submitted again for the failed endpoint. The BPEL process completes successfully.

0 comments:

Post a Comment

 
Blogger Profile