Ejemplo: Utilización del servicio de temporizador con la interfaz TimedObject
En este ejemplo se muestra la implementación del método ejbTimeout() al que se llama cuando se producen sucesos planificados.

El método ejbTimeout puede contener cualquier código que normalmente se sitúa en un método de empresa del bean. El ensamblador de aplicaciones puede asociar los atributos de nivel de método, como transaction o runAs, con este método. Una instancia del objeto Timer que hace que el método a iniciar pase como un argumento para el método ejbTimeout.
import javax.ejb.Timer;
import javax.ejb.TimedObject;
import javax.ejb.TimerService;
public class MyBean implements EntityBean, TimedObject {
// El contenedor de EJB llama a este método al caducar el Timer.
public void ejbTimeout(Timer theTimer) {
// Cualquier código que suela colocarse en un método EJB debe situarse aquí.
String whyWasICalled = (String) theTimer.getInfo():
System.out.println("Me han llamado debido a"+ whyWasICalled);
} // fin del método ejbTimeout
Se crea un Timer que inicia el método ejbTimeout pasados 30 segundos. Un objeto de cadena simple se pasa en el momento de crear el Timer para identificarlo.
// Variable de instancia que contiene el contexto de EJB.
private EntityContext theEJBContext;
// El contenedor de EJB llama a este método al crearse el bean.
public void setEntityContext(EntityContext theContext) {
// Guarde el contexto que se ha pasado al crear el bean.
theEJBContext = theContext;
} // fin del método setEntityContext
// Este método de empresa hace que el método ejbTimeout se inicie al cabo de 30 segundos.
public void fireInThirtySeconds() throws EJBException {
TimerService theTimerService = theEJBContext.getTimerService();
String aLabel = "30SecondTimeout";
Timer theTimer = theTimerService.createTimer(30000, aLabel);
} // fin del método fireInThirtySeconds
} // fin de la clase MyBean