Configuring Message Processing
Keep the following points in mind when configuring message processing for a JMS trigger:
If the JMS provider from which the JMS trigger retrieves messages does not support concurrent access by durable subscribers, you must set the
Max execution threads property to 1 for the concurrent JMS trigger. Consult the documentation for your JMS provider for more information.
Non-durable subscribers, i.e., JMS triggers that subscribe to topics but do not specify a durable subscriber, cannot receive messages in a load-balanced fashion. Because it is possible for a JMS trigger using a non-durable subscriber to process duplicates of a message, set
Max execution threads to 1.
For a destination that acts as a shared state client, the serial processing mode corresponds to a shared state order mode of publisher; a concurrent processing mode corresponds to a shared state order mode of none.
If you use
webMethods Broker as the JMS provider, changing the message processing mode for a JMS trigger can create a mismatch with the corresponding destination on the
webMethods Broker. If you do not use
Designer to make the changes, you need to use the
webMethods Broker interface of
My webMethods to update the destination.
To configure message processing for a JMS trigger
1. In the Package Navigator view of Designer, open the JMS trigger for which you want to specify message processing.
2. In the Properties view, under Messaging processing, next to Processing mode, select one of the following:
Select... | To... |
Serial | Specify that Integration Server should process messages received by the trigger one after the other. |
Concurrent | Specify that Integration Server should process multiple messages for this trigger at one time. In the Max execution threads property, specify the maximum number of messages that Integration Server can process concurrently. |
3. If you want this trigger to perform batch processing, next to Max batch messages, specify the maximum number of messages that the trigger service can receive at one time. If you do not want the trigger to perform batch processing, leave this property set to 1. The default is 1.
4. If you want this trigger to use multiple connections to receive messages from the JMS provider, next to Connection count, specify the number of connections you want the JMS trigger to make to the JMS provider. The default is 1.
5. If you want Integration Server to use the prefetch cache with this JMS trigger, in the Properties view, under Universal Messaging and webMethods Broker do one of the following for Max prefetch size:
Specify the number of messages you want
Integration Server to retrieve and cache for this JMS trigger. The default is 10 messages.
Specify -1 if the JMS trigger retrieves messages from
webMethods Broker and you want the value of watt.server.jms.trigger.maxPrefetchSize parameter to determine how many messages
Integration Server retrieves and caches for the JMS trigger.
Specify 0 if you do not want to use the prefetch cache with this JMS trigger.
6. Click File > Save.
If the destination is Queue or Topic (Durable Subscriber) and the JMS trigger is connected to the queue or durable subscriber, Designer prompts you to update the corresponding destination on the webMethods Broker with the changed shared state order mode, click Yes to update the destination. Click No to skip the destination update. Note that messages might be lost while Designer and Integration Server make the update because Integration Server deletes and recreates the subscription as part of the update.
Note:
A JMS trigger is connected to the webMethods Broker when the specified JMS connection alias is enabled and connected to the webMethods Broker.