javax.servlet.sip
Interface TimerService


public interface TimerService

Allows SIP servlet applications to set timers in order to receive notifications on timer expiration. Applications receive such notifications through an implementation of the TimerListener interface. Applications using timers must implement this interface and declare it as listener in the SIP deployment descriptor.

SIP servlet containers are requried to make a TimerService instance available to applications through a ServletContext attribute with name javax.servlet.sip.TimerService.

See Also:
TimerListener, SipApplicationSession.getTimers()

Method Summary
 ServletTimer createTimer(SipApplicationSession appSession, long delay, boolean isPersistent, java.io.Serializable info)
          Creates a one-time ServletTimer and schedules it to expire after the specified delay.
 ServletTimer createTimer(SipApplicationSession appSession, long delay, long period, boolean fixedDelay, boolean isPersistent, java.io.Serializable info)
          Creates a repeating ServletTimer and schedules it to expire after the specified delay and then again at approximately regular intervals.
 

Method Detail

createTimer

ServletTimer createTimer(SipApplicationSession appSession,
                         long delay,
                         boolean isPersistent,
                         java.io.Serializable info)
Creates a one-time ServletTimer and schedules it to expire after the specified delay.

Parameters:
appSession - the application session with which the new ServletTimer is to be associated
delay - delay in milliseconds before timer is to expire
isPersistent - if true, the ServletTimer will be reinstated after a shutdown be it due to complete failure or operator shutdown
info - application information to be delivered along with the timer expiration notification. This may be null.
Returns:
the newly created ServletTimer
Throws:
java.lang.IllegalStateException - if the application session is invalid

createTimer

ServletTimer createTimer(SipApplicationSession appSession,
                         long delay,
                         long period,
                         boolean fixedDelay,
                         boolean isPersistent,
                         java.io.Serializable info)
Creates a repeating ServletTimer and schedules it to expire after the specified delay and then again at approximately regular intervals.

The ServletTimer is rescheduled to expire in either a fixed-delay or fixed-rate manner as specified by the fixedDelay argument.

The semantics are the same as for Timer:

In fixed-delay execution, each execution is scheduled relative to the actual execution time of the previous execution. If an execution is delayed for any reason (such as garbage collection or other background activity), subsequent executions will be delayed as well. In the long run, the frequency of execution will generally be slightly lower than the reciprocal of the specified period (assuming the system clock underlying Object.wait(long) is accurate).

In fixed-rate execution, each execution is scheduled relative to the scheduled execution time of the initial execution. If an execution is delayed for any reason (such as garbage collection or other background activity), two or more executions will occur in rapid succession to "catch up." In the long run, the frequency of execution will be exactly the reciprocal of the specified period (assuming the system clock underlying Object.wait(long) is accurate).

Parameters:
appSession - the application session with which the new ServletTimer is to be associated
delay - delay in milliseconds before timer is to expire
period - time in milliseconds between successive timer expirations
fixedDelay - if true, the repeating timer is scheduled in a fixed-delay mode, otherwise in a fixed-rate mode
isPersistent - if true, the ServletTimer will be reinstated after a shutdown be it due to complete failure or operator shutdown
info - application information to be delivered along with the timer expiration notification. This may be null.
Returns:
the newly created ServletTimer
Throws:
java.lang.IllegalStateException - if the application session is invalid