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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

peak throughput, so if an adapter instance must support both high throughput for smaller<br />

objects interspersed with occasional large objects, you must make trade-offs.<br />

4.7.3 Tuning for maximum concurrency<br />

For most high-volume deployments on server-class hardware, many operations present<br />

themselves to take place simultaneously. Tuning for maximum concurrency ensures that the<br />

server accepts enough load to saturate its core. One indication of an inadequately tuned<br />

configuration is when additional load does not result in additional core use while the cores are<br />

not fully used. To optimize these operations for maximum concurrency, the general guideline<br />

is to follow the execution flow and remove bottlenecks one at a time.<br />

Higher concurrent processing means higher resource requirements (memory and number of<br />

threads) on the server. High concurrent processing must be balanced with other tuning<br />

objectives, such as the handling of large objects, handling large numbers of users, and<br />

providing good response time.<br />

Tuning edging components for concurrency<br />

The first step in tuning edging components for concurrency is to ensure that business objects<br />

are handled concurrently at the edge components of Business Process Manager solutions. If<br />

the input business objects come from the adapter, ensure that the adapter is tuned for<br />

concurrent delivery of input messages.<br />

If the input business objects come from WebServices export binding or direct invocation from<br />

Java Server Pages (JSPs) or servlets, make sure the WebContainer thread pool is sized right.<br />

For example, to allow for 100 in-flight requests to be handled concurrently by a Business<br />

Process Manager server, the maximum size of the WebContainer thread pool must be set to<br />

100 or larger.<br />

If the input business objects come from messaging, you must tune the ActivationSpec (MDB<br />

bindings) and Listener ports (WebSphere MQ or MQJMS bindings).<br />

Tuning message-driven bean ActivationSpec properties<br />

For each JMS export component, there is an MDB and its corresponding ActivationSpec in<br />

the Java Naming and Directory Interface (JNDI name is module name/export component<br />

name_AS). The default value for maxConcurrency of the JMS export MDB is 10, meaning up to<br />

10 business objects from the JMS queue can be delivered to the MDB threads concurrently.<br />

Change it to 100 if a concurrency of 100 is wanted.<br />

The Tivoli Performance Viewer can be used to monitor the maxConcurrency parameter. For<br />

each message being processed by an MDB, there is a message on the queue marked as<br />

being locked inside a transaction (which is removed after the onMessage completes). These<br />

messages are classed as unavailable. The PMI metric UnavailableMessageCount gives you<br />

the number of unavailable messages on each queue point. Check this value by selecting the<br />

resource name and then clicking SIB Service SIB Messaging Engines. Select the bus<br />

name and click Destinations Queues.<br />

If any queue has maxConcurrency or more unavailable messages, this condition implies that<br />

the number of messages on the queue is currently running above the concurrency maximum<br />

of the MDB. If this situation occurs, increase the maxConcurrency setting for that MDB.<br />

The maximum batch size in the activation specification also has an impact on performance.<br />

The default value is 1 (one). The maximum batch size value determines how many messages<br />

are taken from the messaging layer and delivered to the application layer in a single step. This<br />

batch size value does not mean that this work is done within a single transaction, and thus<br />

64 <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!