2010-05-12 8 views

Respuesta

3

No estoy seguro de si su problema es un clúster u otra cosa. Pero si quiere detener un TimerListener después de una ejecución, simplemente usará la variable del temporizador y la cancelará.

Ex:

public static class MyTimer implements TimerListener { 
    public void timerExpired(Timer timer) {  
     timer.cancel(); 
    } 
} 

Si tiene un problema con el entorno de clúster que ejecuta la tarea una vez por instancia que mis disculpas por publicar esta respuesta simple.

5

Puede usar el servicio Scheduler de WebSphere para hacer lo que desee. Si define un servicio de planificador en el ámbito del clúster, cada miembro del clúster ejecutará un daemon del planificador pero las tareas DB se compartirán, lo que significa que solo una de ellas realizará la tarea que agregue. Ellos sondean el DB cada 30 segundos (configurable) y el primero para ver la tarea lo realizará.

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/welc6tech_sch_adm.html

Tenga en cuenta que EJB 3.1 ofrece nuevas características que pueden ayudarle a hacer lo que quiera, pero esto es sólo tenía 8.