Desarrollo de aplicaciones de temporizador persistente de enterprise bean (EJB)
El contenedor crea temporizadores persistentes EJB de forma automática o bien una aplicación mediante programación. Ambos tipos de temporizadores persistentes se almacenan en tablas de la base de datos que se ha configurado para el servicio de temporizador de EJB en el archivo server.xml.
Acerca de esta tarea
Una vez que se ha creado el temporizador persistente, existe en la base de datos hasta que se produce una de las situaciones siguientes:
- El temporizador no se ha planificado para más vencimientos; por ejemplo después de que caduque el temporizador de una sola acción y se ejecute correctamente.
- El temporizador es cancelado por la aplicación.
- El temporizador se cancela utilizando el MBean del servicio de temporizador EJB (EJBPersistentTimerServiceMXBean)
- El temporizador se elimina manualmente de la base de datos. Por ejemplo, si la base de datos del servicio de temporizador se ha borrado o eliminado.
Además, tenga en cuenta que los temporizadores persistentes EJB se asocian a un EJB basándose en el nombre de aplicación, nombre de módulo y nombre de bean. Si se actualiza una aplicación y cambia cualquiera de estos nombres, el temporizador sigue existiendo en la base de datos, pero parece que ya no existe porque ya no caduca y ya no se ejecuta.
La especificación de Enterprise JavaBeans declara que el contenedor crear temporizadores automáticos cuando se despliega una aplicación. Para Liberty, esto se produce la primera vez que se inicia una aplicación dentro de un proceso de servidor. Durante el primer inicio de la aplicación, los temporizadores persistentes creados automáticamente se almacenan en la base de datos de temporizador persistente con una indicación de que se ha desplegado la aplicación. El contenedor no vuelve a crear los temporizadores persistentes automáticos hasta que se eliminen tanto los temporizadores, como la indicación de que la aplicación se ha desplegado, de la base de datos de temporizador persistente EJB.
Procedimiento
<featureManager>
<feature>ejbPersistentTimer-3.2</feature>
</featureManager>