Database Reference
In-Depth Information
Complex exception handling
Before we discuss the essential steps in exception handling in an agnostic composition con-
troller implemented in the CTU SOA farm, we will mention the importance of clear and
consistent identification of all fault messages related to certain process instances. You
could use a standard Ora ECID for this purpose in addition to the initial Java-based label-
ing process instance at the beginning of every BPEL:
1. Go to the Receive activity tab at the top and select Edit after a right-click.
2. In the Properties tab, click on the green cross and select tracking.ecid from the
drop-down list. Assign it to the variable of your choice. Use it within your Mes-
sage Tracking Records Object.
We will start with recalling the structure of the composition controller (async Service
Broker). Basically, it has two parts (if we omit the standard initialization): acquiring the ex-
ecution plan and looping through EPs elements. Thus, we should have three exception
scopes: sequentially, one for master loop and one for the EP endpoint, and one generic out-
er handler for the entire process. (In your version, you can implement additional handlers
for every new scope.) For all cases, you can declare a generic SBFault and use it with
fault variables based on the Message Tracking Record type (see the declaration in the fol-
lowing figure).
When the entire process fails, we can employ standard catches: one for SBFault and the
master, CatchAll ; however, in any of these handling sequences, we cannot really fix the
problem. All that we have to do is identify at what nested level the error occurred (master
or subcontroller; this should be visible in message tracing records) and assign status code in
the Message Header and MTR objects. After this, we perform the Audit (depending on the
Audit level of the current invocation) and return to the composition initiator (client, using
Invoke).
When the extraction of the execution plan fails, we should invoke ErrorManager for the
first time; see the following figure:
Search WWH ::




Custom Search