08.06.2014 Views

Download PDF (1.3 MB) - IBM Redbooks

Download PDF (1.3 MB) - IBM Redbooks

Download PDF (1.3 MB) - IBM Redbooks

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.2.6 Business Process Execution Language business process<br />

considerations<br />

This section presents considerations for authoring performance specific to BPEL business<br />

processes.<br />

Modeling best practices for activities in a business process<br />

For best performance, use the following guidelines when modeling a BPEL business process:<br />

►<br />

►<br />

►<br />

►<br />

Use the Audit Logging property for Business Processes only setting if you need to log<br />

events in the Business Process Choreographer database (BPEDB). You can set this<br />

property at the activity or process level. If you set it at the process level, the setting is<br />

inherited by all activities.<br />

For long-running processes, in Integration Designer, click Properties Server, and clear<br />

the Enable persistence and queries of business-relevant data property for both the<br />

process and for each individual BPEL activity. Enabling this flag causes details of the<br />

execution of this activity to be stored in the BPC database, which increases the load on the<br />

database and the amount of data stored for each process instance. Use this setting only if<br />

you must retrieve specific information later.<br />

For long-running processes, a setting of Participates on all activities generally provides<br />

the best throughput performance. See “Avoiding two-way synchronous invocation of an<br />

asynchronous target” on page 39 for more details.<br />

Human tasks can be specified in business processes (for example, process<br />

administrators), start activities, and receive activities. Specify human tasks only if<br />

necessary. When multiple users are involved, use group work items (people assignment<br />

criterion: Group) instead of individual work items for group members (people assignment<br />

criterion: Group Members).<br />

Avoiding two-way synchronous invocation of long-running processes<br />

When designing long-running business process components, ensure that callers of a two-way<br />

(request/response) interface do not use synchronous semantics because this function ties up<br />

the caller’s resources (such as threads and transactions) until the process completes.<br />

Instead, start such processes either asynchronously, or through a one-way synchronous call,<br />

where no response is expected. In addition, calling a two-way interface of a long-running<br />

business process synchronously introduces difficulties when exceptions occur. Suppose that<br />

a non-interruptible process calls a long-running process using the two-way request/response<br />

semantics, and the server fails after the long-running process completes, but before the<br />

caller’s transaction is committed. The following results occur:<br />

►<br />

►<br />

If the caller was started by a persistent message, upon server restart, the caller’s<br />

transaction is rolled back and tried again. However, the result of the execution of the<br />

long-running process on the server is not rolled back because it was committed before the<br />

server failure. As a result, the long-running process on the server runs twice. This<br />

duplication causes functional problems in the application unless corrected manually.<br />

If the caller was not started by a persistent message, and the response of the long-running<br />

process was not submitted yet, the process ends in the failed event queue.<br />

36 <strong>IBM</strong> Business Process Manager V8.0 Performance Tuning and Best Practices

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!