Configuration du service de temporisation JavaBeans pour les temporisateurs persistants
Pour les temporisateurs EJB persistants, vous pouvez configurer le service de temporisation EJB afin de contrôler la source de données sur laquelle les temporisateurs sont stockés, l'intervalle entre les tentatives ainsi que le nombre de tentatives effectuées en cas d'échec des appels jusqu'à ce que la méthode de rappel du délai d'attente soit appelée.
Pourquoi et quand exécuter cette tâche
Lorsque la fonction ejbPersistentTimer est activée, une source de données doit être configurée pour conserver les temporisateurs, sinon toute tentative d'utiliser des temporisateurs persistants échouera. Le service de temporisation EJB utilise DefaultDataSource s'il est configuré et si aucune autre source de données spécifique n'est configurée pour être utilisée par le service de temporisation.
De même, le service de temporisation EJB relance les appels ayant échoué avec la méthode de rappel du délai d'attente pour les temporisateurs persistants, et ce toutes les 5 minutes, jusqu'à ce que la méthode de rappel du délai d'attente aboutisse.
Utilisez les options suivantes pour configurer les temporisateurs persistants.
- Exécuteur planifié des temporisateurs persistants EJB
Spécifie une référence vers un exécuteur persistant qui contrôle le comportement des temporisateurs persistants. Une instance par défaut, defaultEJBPersistentTimerExecutor, utilise DefaultDataSource comme stockage de persistance. La référence de l'exécuteur planifié des temporisateurs persistants EJB peut être remplacée par une configuration personnalisée ou l'instance par défaut peut être redéfinie afin de modifier des valeurs spécifiques. Les options suivantes sont disponibles pour l'exécuteur persistant :
- Nombre maximal de tentatives
Spécifie le nombre maximal de tentatives d'appel de la méthode de rappel de délai d'attente en cas d'échec de celle-ci. Si la méthode de rappel de délai d'attente aboutit lors de la nouvelle tentative, le serveur cesse les tentatives d'exécution. Si une tentative échoue, le serveur poursuit ses tentatives jusqu'à ce que la méthode de rappel du délai d'attente aboutisse ou jusqu'à ce que le nombre maximal de tentatives soit atteint. Une fois que le nombre maximal de tentatives est atteint, le serveur cesse de tenter d'exécuter la méthode de rappel du délai d'attente, même si les tentatives antérieures ont échoué. La valeur par défaut de -1 indique un nombre illimité de tentatives. La valeur 0 indique aucune nouvelle tentative et n'est pas conforme à la spécification EJB. Une valeur égale ou supérieure à 1 indique le nombre spécifique de nouvelles tentatives.
Le nombre de tentatives de lancement de la méthode de rappel du délai d'attente pour les temporisateurs non persistants doit être reconfiguré pour les applications qui n'ont pas besoin d'un temporisateur non persistant à chacune des heures planifiées. Par exemple, si une application crée un temporisateur d'intervalle non persistant qui est planifié pour s'exécuter toutes les 5 minutes, et que vous configurez le nombre de tentatives sur 0, le temporisateur s'exécutera une fois toutes les 5 minutes, que l'opération aboutisse ou non.
- Intervalle entre les nouvelles tentatives
Spécifie l'intervalle entre les tentatives de relance en cas d'échec de la méthode de rappel du délai d'attente. La première tentative a toujours lieu immédiatement, quel que soit l'intervalle configuré pour cette valeur. Toutes les tentatives supplémentaires attendent l'intervalle spécifié pour cette valeur. La valeur 0 indique que toutes les tentatives sont immédiates. Une valeur égale ou supérieure à 1 indique que les tentatives doivent attendre durant ce nombre spécifique de secondes. La valeur par défaut est de 300 secondes.
La configuration d'un intervalle de temps différent entre chaque tentative pour les temporisateurs non persistants est utile pour les applications pour lesquelles il est important que la méthode de rappel du délai d'attente se termine avant l'heure planifiée. Cette approche est également applicable pour les applications dans lesquelles il est acceptable de différer l'exécution du temporisateur à une heure ultérieure, comme un intervalle de relance ultérieur, afin d'activer la méthode de rappel du délai d'attente de sorte que l'application ait plus de chances de s'exécuter correctement.
- Magasin de tâches persistantes
Spécifie la source de données utilisée. Une instance par défaut, defaultDatabaseStore, utilise DefaultDataSrouce comme stockage de persistance.