When we create a BPEL process from templates, we can choose three values for Delivery setting to any of the there values below.

a. Async.Persist
This is used when Reliability is more important than performance. Messages are persisted in the database.
b. Async.Cache
Incoming messages are kept only in the in-memory cache. choose this if performance is important. However if the incoming messages are more than delivered messages, the messages can be lost.
This is also not recommended for High availability as the Invoke and callback messages at the time of server crash may be lost or duplicated.
c. Sync
Direct invocation happens on the same thread. The scheduling of messages in the invoke queue is bypassed and BPEL instance is invoked synchronously.
The above property can be referred as 'OneWayDeliveryPolicy' in the deploymentdescriptor. This property is applicable only for Asynchronous and One-way services.
For Synchronous services there is Transaction property which has below three values.
a. Required: This ensures that the transaction from caller application continues. If there is no caller application new transaction starts.
b.RequiresNew: A new transaction is created and existing is suspended. This is true for one-way interface with Delivery property as
c. notSupported: This does not bother about existing transaction and enables BPEL activities to continue without maintaining transaction.
Reference: https://docs.oracle.com/middleware/1213/soasuite/develop-soa/bpel-process-creation.htm#SOASE353

a. Async.Persist
This is used when Reliability is more important than performance. Messages are persisted in the database.
b. Async.Cache
Incoming messages are kept only in the in-memory cache. choose this if performance is important. However if the incoming messages are more than delivered messages, the messages can be lost.
This is also not recommended for High availability as the Invoke and callback messages at the time of server crash may be lost or duplicated.
c. Sync
Direct invocation happens on the same thread. The scheduling of messages in the invoke queue is bypassed and BPEL instance is invoked synchronously.
The above property can be referred as 'OneWayDeliveryPolicy' in the deploymentdescriptor. This property is applicable only for Asynchronous and One-way services.
For Synchronous services there is Transaction property which has below three values.
a. Required: This ensures that the transaction from caller application continues. If there is no caller application new transaction starts.
b.RequiresNew: A new transaction is created and existing is suspended. This is true for one-way interface with Delivery property as
c. notSupported: This does not bother about existing transaction and enables BPEL activities to continue without maintaining transaction.
Reference: https://docs.oracle.com/middleware/1213/soasuite/develop-soa/bpel-process-creation.htm#SOASE353
No comments:
Post a Comment