Configuring Enterprise JavaBeans timer service
For non-persistent EJB timers, you can configure the EJB timer service to control the interval between timer retries and the number of retry attempts for failed calls to the timeout callback method.
About this task
The EJB timer service retries failed calls to the timeout callback method for non-persistent timers every 5 minutes until the timeout callback method completes successfully. Use the following options to configure non-persistent timers.
- Maximum number of retries
Specifies the maximum number of times that the failing timeout callback method might be retried. If the timeout callback method is successful upon retry, the server stops attempting to run it. If a retry fails, the server continues to attempt retries until the timeout callback method succeeds, or the retry limit is reached. After the retry limit is reached, the server does not attempt to run the timeout callback method, even if prior attempts have not succeeded. The default value of -1 indicates unlimited retries. A value of 0 indicates no retries, and is not specification-compliant. A value of 1 or greater indicates the specific number of retries that are allowed.
Changing the configuration of the number of times a timeout callback method is retried for non-persistent timers is useful for applications that do not require non-persistent timers to complete at each of the scheduled times. For example, if an application creates a non-persistent interval timer that is scheduled to run every 5 minutes, then configuring the number of retries to 0 results in the timer running one time every 5 minutes, regardless whether it succeeds or fails.
- Time interval between retries
Specifies the interval between retry attempts for a failed timeout callback method. The first retry always occurs immediately, regardless of the interval that is configured for this value. All additional retries wait for the interval that is specified for this value. A value of 0 indicates that all retries are immediate. A value of 1 or greater indicates that retries must wait for that specific number of seconds. The default is 300 seconds.
Configuring a different time interval between retries for non-persistent timers is useful for applications where it is important for the timeout callback method to complete before the scheduled time, when using a smaller retry interval. This approach is also applicable for applications where it is acceptable to delay the timer completion to a later time, such as when using a later retry interval, to enable the timeout callback method to have a better chance to run successfully.