book
Article ID: KB0089544
calendar_today
Updated On:
Description
Resolution:
Batch applications using TIBCO DataSynapse GridServer will often want to achieve throughput rates of several hundred invocations (tasks) per second. These rates are achievable by tuning the INVOCATIONS_PER_MESSAGE setting on the submitting service, as the default setting is optimized for interactive applications.
Environment:
===========
o TIBCO DataSynapse GridServer, all versions from 4.x to 6.x
Symptoms:
========
Overall throughput rates will be much lower than desired, typically well under 100 invocations per second. Customers will usually see messages in driver or engine logs like:
WARNING: [JakartaHttpSupport] Too many messages are being processed, will retry in NNNN msecs.
Broker JVM CPU utilization will exceed 100% of a single core.
Cause:
=====
The default invocation buffering setting is 1 invocation per message, i.e. no buffering at all. This is an appropriate setting for some interactive applications, but is not optimal for batch submission of hundreds or thousands of invocations.
Resolution:
==========
For all batch applications, the Service should be configured to set the invocations per message to a higher value. TIBCO Support suggests 50 as a reasonable setting. You can change the setting in several ways:
* in the Service Type Registry, for each batch submitting service type, Edit Service Type and change the value of invocationsPerMessage to the desired value (50)
* in the submitting client code, when creating the Service from the ServiceFactory, add the option INVOCATIONS_PER_MESSAGE, with the desired value, as one of the option properties
Note that the invocations per message option is not the same as the autopack option. Invocations per message only buffers submitted tasks, but tasks are processed one at a time on engines.
Issue/Introduction
Improve Submission and collection throughput for batch applications using TIBCO DataSynapse GridServer