Enabling, Disabling and Suspending a JMS Trigger
You can manage JMS triggers and the amount of resources they consume by changing the state of a JMS trigger.
Using the Integration Server Administrator, you can:
Enable, disable, or suspend all JMS triggers.
Enable, disable, or suspend all the JMS triggers of a specific type (standard or SOAP-JMS).
Enable, disable, or suspend specific JMS triggers.
Enable, disable, or suspend all of the triggers in a JMS trigger group
You might want to change the state of all JMS triggers at once as a quick way of freeing up server resources. This can be especially helpful in a situation in which Integration Server is functioning under heavy load and additional resources are needed immediately.
You might want to change the state for a specific JMS trigger in the following situations:
When a back-end system needs maintenance or is becoming unresponsive, you might want to suspend JMS triggers that interact with the back-end system. When the back-end system becomes available, you can enable the JMS triggers.
After suspending or disabling all JMS triggers, you might enable specific JMS triggers. For example, if the server is functioning under an unusually heavy load, you might first suspend all JMS triggers and then gradually enable JMS triggers, starting with the JMS triggers involved in key processes.
After
Integration Server suspends a serial JMS trigger automatically because a fatal error occurred during message processing. For information about configuring a JMS trigger for fatal error handling, see
webMethods Service Development Help.
After creating a WS endpoint trigger by creating a provider web service endpoint alias for JMS.
Important: If you disable or suspend a SOAP-JMS trigger that acts as a listener for one or more provider web service descriptors, Integration Server will not retrieve any messages for those web service descriptors.
The following procedure explains how to use Integration Server Administrator to change the state of all or individual JMS triggers.
To enable, disable, or suspend JMS triggers
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Messaging.
3. Click JMS Trigger Management.
4. If you want to change the state of all JMS triggers, do the following:
a. Under Individual JMS Trigger Controls, in the Enabled column, click edit all.
b. On the Settings > Messaging > JMS Trigger Management > Edit Triggers State screen, in the New State list, select the state that you want to apply to all JMS triggers.
c. In the JMS Trigger Type list, select one of the following:
Select | To |
Standard | Apply the state change to standard JMS triggers only. |
SOAP | Apply the state change to SOAP-JMS triggers only, including WS endpoint triggers. |
All | Apply the state change to all JMS triggers. |
5. If you want to change the state of a specific JMS trigger, do the following:
a. Under Individual JMS Trigger Controls, in the row for the JMS trigger that you want to enable, disable, or suspend, click the text in the State column
b. On the Settings > Messaging > JMS Trigger Management > Edit State screen, in the New State list, select the state that you want to apply to this JMS trigger.
6. If you want to change the state for all of the JMS triggers in a JMS trigger group, do the following:
a. Under Individual JMS Trigger Controls, in the row for the JMS trigger group header for the trigger group for which you want to enable, disable, or suspend all the triggers, click the text in the State column
b. On the Settings > Messaging > JMS Trigger Management > Edit State - JMS Trigger Group screen, in the New State list, select the state that you want to apply to this JMS trigger.
7. Click Save Changes.
Notes:
If you want to disable a JMS trigger, first suspend the JMS trigger and wait for all the processing threads complete. Then, disable the JMS trigger. You can view the number of threads currently used by a JMS trigger on the
Settings > Messaging > JMS Trigger Management screen.
When you disable a JMS trigger,
Integration Server does the following:
If the JMS trigger is waiting before making a retry attempt,
Integration Server interrupts processing for the JMS trigger.
If the JMS trigger is currently processing messages,
Integration Server waits a specified amount of time before forcing the JMS trigger to stop processing messages. If it does not complete in the allotted time,
Integration Server stops the message consumer used to receive messages for the JMS trigger and closes the JMS session. At this point the server thread for the JMS trigger continues to run to completion. However, the JMS trigger will not be able to acknowledge the message when processing completes. If the delivery mode of the message is set to persistent, this can lead to duplicate messages.
The time Integration Server waits between the request to disable the JMS trigger and forcing the trigger to stop is specified by the watt.server.jms.trigger.stopRequestTimeout property.
Because administered objects, like destinations, are configured outside of
Integration Server, disabling a JMS trigger has no impact on the subscription.
If a JMS trigger is processing messages at the time it is suspended, the JMS trigger will complete processing of those messages. The JMS trigger also acknowledges the messages to the JMS provider.
You can use built-in services to enable, disable, and suspend one or more triggers. For information about the
pub.trigger:disableJMSTriggers,
pub.trigger:enableJMSTriggers, and
pub.trigger:suspendJMSTriggers services, see the
webMethods Integration Server Built-In Services Reference.