Configuración del servicio temporizador de JavaBeans de empresa para temporizadores persistentes
Para temporizadores EJB persistentes, puede configurar el servicio de temporizador EJB para controlar el origen de datos donde se almacenan los temporizadores, el intervalo entre que el temporizador efectúa el reintento y el número de reintentos para las llamadas que han fallado en el método de devolución de llamada en espera.
Acerca de esta tarea
Cuando se ha habilitado la característica ejbPersistentTimer, se debe haber configurado un origen de datos para persistir los temporizadores o cualquier fallará todo intento de utilizar temporizadores persistentes. El servicio de temporizador EJB utiliza DefaultDataSource si se ha configurado y no se configura ningún otro origen de datos específico para que lo utilice el servicio de temporizador EJB.
Además, el servicio de temporizador EJB reintenta las llamadas que han fallado en el método de devolución de llamada de tiempo de espera para los temporizadores persistentes cada 5 minutos hasta que el método de devolución de llamada de tiempo de espera finalice correctamente.
Utilice las opciones siguientes para configurar temporizadores persistentes.
- Ejecutor planificado de temporizadores persistentes EJB
Especifica una referencia a un ejecutor persistente que controla el comportamiento de temporizadores persistentes. Se proporciona una instancia predeterminada, defaultEJBPersistentTimerExecutor, que utiliza DefaultDataSource como almacén persistente. Es posible cambiar la referencia del ejecutor planificado de los temporizadores persistentes EJB por una configuración personalizada, o se puede alterar temporalmente la instancia predeterminada para cambiar los valores específicos. Están disponibles las opciones siguientes para el ejecutor persistente:
- Límite de reintentos
Especifica el número máximo de veces que se puede reintentar el método de devolución de llamada de tiempo de espera que falla. Si tras el reintento el método de devolución de llamada de tiempo espera resulta satisfactorio, el servidor dejará de ejecutarlo. Si falla un reintento, el servidor seguirá reintentándolo hasta que el método de devolución de llamada de tiempo de espera sea satisfactorio o hasta que se llegue al límite de reintentos. Tras alcanzar el límite de reintentos, el servidor no intentará ejecutar de nuevo el método de devolución de llamada de tiempo de espera, incluso aunque los intentos anteriores no hayan resultado satisfactorios. El valor predeterminado de -1 indica reintentos ilimitados. Un valor de 0 indica que no se llevan a cabo reintentos, y no es compatible con la especificación EJB. Un valor de 1 o mayor indica el número específico de reintentos.
El hecho de cambiar la configuración del número de veces que se reintenta un método de devolución de llamada de tiempo de espera para temporizadores no persistente resulta útil para las aplicaciones que no requieren que los temporizadores no persistentes finalicen en cada intento planificado. Por ejemplo, si una aplicación crea un temporizador de intervalo no persistente que se ha planificado para que se ejecute cada 5 minutos, al configurar el número de reintentos en 0, implica que el temporizador se ejecutará una vez cada 5 minutos, independientemente de si el resultado es satisfactorio o si falla.
- Intervalo de reintentos
Especifica el intervalo entre reintentos para un método de devolución de llamada de tiempo de espera fallido. El primer reintento siempre se produce inmediatamente, independientemente del intervalo que se haya configurado para este valor. Todos los reintentos adicionales esperan al intervalo especificado para este valor. Un valor de 0 indica que todos los reintentos son inmediatos. Un valor de 1 o mayor indica que los reintentos deben esperar ese número específico de segundos. El valor predeterminado es de 300 segundos.
La configuración de un intervalo de tiempo distinto entre reintentos para temporizadores no persistentes resulta útil para aplicaciones en que es importante que el método de devolución de llamada de tiempo de espera se complete antes del tiempo planificado. Este enfoque también se aplica en aplicaciones en que se acepta retrasar la finalización del temporizador como, por ejemplo, un intervalo de reintento posterior, para habilitar el método de devolución de llamada de tiempo de espera de forma que la aplicación pueda tener una oportunidad de mejor de ejecutarse correctamente.
- Almacén de tareas persistentes
Especifica qué origen de datos se utiliza. Se proporciona una instancia predeterminada, defaultDatabaseStore, que utiliza DefaultDataSrouce como almacén persistente.