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.

Pratiques recommandées Pratiques recommandées: Le modèle de programmation d'EJB 3.x fournit des méthodes supplémentaires pour définir des temporisateurs persistants et non persistants dans votre environnement. Il est toujours possible de définir des temporisateurs persistants à l'aide de la méthode ejbTimeout. Toutefois, il est conseillé d'utiliser à présent les annotations EJB pour créer des temporisateurs persistants et non persistants pour répondre aux besoin de votre activité. Reportez-vous à la rubrique relative à l'utilisation du service de temporisateur EJB avec les beans enterprise pour apprendre comment créer des temporisateurs persistants et non persistants à l'aide d'annotations, ou comment créer votre propre temporisateur à l'intérieur d'un descripteur de déploiement.bprac

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

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rejb_timerex_v8
Nom du fichier : rejb_timerex_v8.html