How Does the JMS Trigger Restart Task Work?
If a JMS trigger does not start when a JMS connection alias starts, Integration Server schedules a task to retry starting the JMS triggers and then continues with activities associated with starting the JMS connection alias. The trigger restart task, which runs in its own thread, attempts to restart the failed JMS triggers at a set interval. By default, the task executes every 30 seconds. The task completes after all failed triggers for the JMS connection alias successfully start, when the JMS connection alias is disabled, or the maximum retry attempts have been made. If the maximum retry attempts have been made and JMS triggers still do not start, the remaining JMS triggers likely need to be examined for configuration problems. When the configuration issues are resolved, the JMS trigger can be restarted manually using Integration Server Administrator.
Integration Server schedules one task for each JMS connection alias that has triggers that do not start when the alias starts up successfully. Integration Server writes server log messages as the Info, Debug, and Trace levels to indicate the progress of the triggers restart task. Because the restart task uses a separate thread from the one used to start the JMS connection alias, attempts to restart the JMS trigger do not impede the completion of the connection alias start up.
Integration Server provides server configuration parameters that you can use to control the interval at which the trigger restart task attempts to start the JMS triggers and the interval the task waits between attempts.
watt.server.jms.trigger.startupFailure.restartTaskRetryCount. Specifies the maximum number of retry attempts the trigger restart task makes to start the JMS triggers that fail to start when the JMS connection alias starts up.
Integration Server makes the initial start attempt for a JMS trigger when starting the JMS connection alias used by the trigger. The default is 6 retry attempts.
watt.server.jms.trigger.startupFailure.restartTaskRetryInterval. Specifies the number of seconds that the trigger restart task waits between attempts to restart JMS triggers that failed to start when the JMS connection alias started. You must specify a positive integer. The default is 30 seconds.
Once the JMS trigger starts and is running, it is possible for the JMS trigger to catch an exception while receiving messages from the JMS provider. Typically, this occurs when the JMS provider becomes unavailable. If the JMS provider is not available, Integration Server disables the JMS trigger. The JMS connection alias will eventually fail as well. When a connection failure causes a JMS connection alias to stop Integration Server attempts to restart the JMS connection alias every 20 seconds. When the connection to the JMS provider is restored, the JMS connection alias restarts, and Integration Server attempts to start all of the JMS triggers that use the JMS connection alias.
It is possible that a JMS trigger will become disabled but the JMS connection alias recovers quickly and does not stop. Because the JMS connection alias does not fail because of a connection error, Integration Server does not attempt to restart the JMS connection alias, which means that Integration Server does not make the automatic attempt to restart the JMS triggers after the alias restarts. Here, if watt.server.jms.trigger.retryOnConsumerError is set to true, Integration Server attempts to start JMS triggers automatically. Integration Server attempts indefinitely to start the JMS trigger as long as the JMS connection alias is running and the JMS trigger is enabled.