Oracle BPEL we can set the transaction explicitly. If
transaction is defined then that set of events will be working as unit. If
there is failure in any event then that unit will be rolled back.
If we didn’t define the transaction explicitly then all the
event will be working as single unit.
The table below summarises the transaction status when performing different activities.
Activity | Transaction Status in BPEL Process | Transaction Status in Target Process or Adapter |
Receive | New Transaction | N/A |
Receive with Property “transaction=participate” | Use Existing Transaction from Caller | N/A |
Invoke Synchronous Process | Use Existing Transaction | New Transaction |
Invoke Synchronous Process with Partner Link Property “transaction=participate” | Use Existing Transaction | Use Existing BPEL Transaction |
Invoke Synchronous Process with Partner Link Property “idempotent=false” | New Transaction | New Transaction |
Invoke Synchronous Process with Partner Link Property “nonBlockingInvoke=true” | New Transaction | New Transaction |
Invoke Asynchronous Process | Use Existing Transaction | New Transaction |
Invoke Asynchronous Process with Partner Link Property “transaction=participate” | Use Existing Transaction | New Transaction |
Invoke Synchronous Process with Partner Link Property “idempotent=false” | New Transaction | New Transaction |
Wait < a couple of seconds | Use Existing Transaction | N/A |
Wait > a couple of seconds | New Transaction | N/A |
Flow | Use Existing Transaction |
No comments:
Post a Comment