Gestion des temporisateurs persistants EJB créés automatiquement

Les applications ou les modules utilisent l'annotation javax.ejb.Schedule ou l'élément de calendrier dans le descripteur de déploiement XML pour indiquer au serveur d'applications de créer automatiquement des temporisateurs EJB. Un bean géré est fourni pour la gestion de la création des temporisateurs persistants EJB automatiquement créés.

Pourquoi et quand exécuter cette tâche

Le serveur Liberty crée les temporisateurs persistants automatiques EJB pour une application la première fois que l'application est démarrée dans le processus serveur. Les temporisateurs, ainsi qu'une indication de leur création, sont stockés dans la base de données associée au programme d'exécution PersistentExecutor, configuré pour le service de temporisateur EJB. Une fois créés, les temporisateurs persistants créés automatiquement pour une application ne seront pas recréés tant qu'une action n'aura pas été prise pour effacer l'indication de leur création à partir de la base de données. Même si tous les temporisateurs créés automatiquement pour une application sont supprimés, le serveur Liberty ne recréera aucun d'entre eux tant que l'indication de leur création n'aura pas été également supprimée.

Supprimer l'indication de création de ces temporisateurs peut être effectuée manuellement en supprimant la base de données de temporisateurs ou à l'aide du bean géré de service de temporisateurs EJB. Ce bean géré peut être utilisé à l'aide d'un programme ou via un outil tel que JConsole. L'interface du bean géré de service de temporisateurs EJB est : com.ibm.websphere.ejbcontainer.mbean.EJBPersistentTimerServiceMXBean.

Procédure

  1. Configurez le serveur d'applications pour inclure une fonction EJB prenant en charge les temporisateurs persistants et le connecteur REST dans le fichier server.xml.
    <featureManager>
         <feature>servlet-3.1</feature>
         <feature>ejbPersistentTimer-3.2</feature>
         <feature>jdbc-4.1</feature>
         <feature>restConnector-1.0</feature>
    </featureManager>
  2. Configurez le serveur d'applications afin d'inclure une source de données pour le service de temporisateurs EJB dans le fichier server.xml.
    <dataSource id="DefaultDataSource" jdbcDriverRef="DerbyEmbedded">
         <properties.derby.embeddedcreateDatabase="create" databaseName="${server.config.dir}/data/EJBTimerDB"/>
    </dataSource>
    <jdbcDriver id="DerbyEmbedded" libraryRef="DerbyLib"/>
    <library id="DerbyLib">
         <filename="${server.config.dir}/derby/derby.jar"/>
    </library>
  3. Obtenez la connexion au serveur de beans gérés (MBean).
  4. Obtenez le bean géré de service de temporisateurs persistants EJB.
    import javax.management.MBeanServerConnection;
    import avax.management.ObjectName;
    import com.ibm.websphere.ejbcontainer.mbean.EJBPersistentTimerServiceMXBean;
    ...
    MBeanServerConnection mbsc = <step #3>;
    ObjectName on = new
    ObjectName("WebSphere:feature=ejbPersistentTimer,type=EJBPersistentTimerService,name=EJBPersistentTimerService");
    EJBPersistentTimerServiceMXBean timerServiceMBean =
         JMX.newMXBeanProxy(mbsc, on, EJBPersistentTimerServiceMXBean.class);
  5. Retirez les temporisateurs persistants créés automatiquement pour l'application.
    timerServiceMBean.removeAutomaticTimers("<application name>");

    La méthode removeAutomaticTimers() sur le bean géré retire les temporisateurs créés automatiquement, ainsi que l'indication de leur création. Au démarrage suivant du serveur, les temporisateurs persistants sont automatiquement créés.


Icône indiquant le type de rubrique Rubrique Tâche



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