Which statement is true about how the BPEL Process Manager works?
B.
If the transaction property for an asynchronous BPEL process is set to required, the BPEL
process joins a caller’s transaction (if there is no one) or creates a new transaction (if there is no
transaction)
C.
If the delivery policy for a synchronous BPEL process is set to sync, the instance-initiating
message is not temporarily saved in the delivery layer.
D.
If the delivery policy for a synchronous BPEL process is set to async.persist, messages to the
system are saved in the delivery store before being picked up by the service engine.
A.
If the transaction property for a synchronous BPEL process is set to requiresNew transaction, a
new transaction is created for the execution and the existing transaction (if there is one) is
suspended.
Explanation:
With bpel.config.transaction Set to requiresNew a new transaction is always created
and an existing transaction (if there is one) is suspended.
A.
http://docs.oracle.com/cd/E15586_01/integration.1111/e10224/soa_transactions.htm
A
requiresNew: A new transaction is created for the execution, and the existing transaction (if there is one) is suspended. This behavior is true for both request/response (initiating) environments and one-way, initiating environments in which bpel.config.oneWayDeliveryPolicy is set to sync.
You always have to pay attention on the answer. Some might be confused about letter B, because the description for REQUIRED Transaction is right, but it’s only for synchronous. When it’s one-way, the invoked messages are processed using the same thread in the same transaction.
Actualy, why is not D?
onewayDeliveryPolicy=async.persist
(The BPELCallee process runs in a separate thread/transaction.)
The BPELCaller does not get a response because the message is saved in the delivery service. The BPELCallee transaction is rolled back if the fault is not handled.
oneWayDeliveryPolicy is used for OneWay (not sync) services. So it’s not C and D. For async services work with bpel.config.transaction, the bpel.config.oneWayDeliveryPolicy mast be set to sync. There is no mention of it in B.
So the answer is A.
A