Exemple : Utilisation du service de temporisateur avec l'interface TimedObject
Cet exemple présente l'implémentation de la méthode ejbTimeout(), qui est appelée lorsque l'événement planifié a lieu.

La méthode ejbTimeout peut contenir tout code généralement inséré dans une méthode métier du bean. Les attributs au niveau méthode, tels que transaction ou runAs, peuvent être associés à cette méthode par le programme d'assemblage de l'application. Une instance de l'objet Timer, qui provoque le déclenchement de la méthode, est transmise à la méthode ejbTimeout sous forme d'argument.
import javax.ejb.Timer;
import javax.ejb.TimedObject;
import javax.ejb.TimerService;
public class MyBean implements EntityBean, TimedObject {
// Cette méthode est appelée par le conteneur d'EJB à l'expiration de l'objet Timer.
public void ejbTimeout(Timer theTimer) {
// Tout code normalement inséré dans une méthode EJB peut être inséré ici.
String whyWasICalled = (String) theTimer.getInfo():
System.out.println("I was called because of"+ whyWasICalled);
} // fin de la méthode ejbTimeout
L'objet Timer créé lance la méthode ejbTimeout en 30 secondes. Un objet chaîne simple est transmis, à la création de l'objet Timer, pour identifier l'objet Timer.
// Variable d'instance pour conserver le contexte d'EJB.
private EntityContext theEJBContext;
// Cette méthode est appelée par le conteneur EJB à la création du bean.
public void setEntityContext(EntityContext theContext) {
// Sauvegarde le contexte d'entité transmis à la création du bean.
theEJBContext = theContext;
} // fin de la méthode setEntityContext
// Cette méthode métier permet à la méthode ejbTimeout d'être lancée dans 30 secondes.
public void fireInThirtySeconds() throws EJBException {
TimerService theTimerService = theEJBContext.getTimerService();
String aLabel = "30SecondTimeout";
Timer theTimer = theTimerService.createTimer(30000, aLabel);
} // fin de la méthode fireInThirtySeconds
} // fin de la classe MyBean