Comment arrêter sans fin EJB 3 timer?
Je suis nouveau à l'EJB 3 . J'utilise le code suivant pour démarrer sans fin EJB 3 minuterie
puis déploiement sur JBOSS 4.2.3
@Stateless
public class SimpleBean implements SimpleBeanRemote,TimerService {
@Resource
TimerService timerService;
private Timer timer ;
@Timeout
public void timeout(Timer timer) {
System.out.println("Hello EJB");
}
}
appel
timer = timerService.createTimer(10, 5000, null);
Il fonctionne bien. J'ai créé une classe client qui appelle une méthode qui crée la minuterie et une méthode qui est appelée lorsque la minuterie arrive à expiration.
J'oublie d'appeler annuler
ensuite, il ne s'arrête pas .redéployer avec annuler l'appel ne jamais l'arrêter. redémarrer Jboss 4.2.3 jamais l'arrêter. Comment je peux arrêter EJB timer ?
Merci pour votre aide.
OriginalL'auteur mebada | 2010-01-21
Vous devez vous connecter pour publier un commentaire.
Cela supprime tous les compteurs à zéro, mais si vous consultez le "getTimers()" ils toujours là :/
Non! Cela permettra d'annuler uniquement les compteurs qui ont le même nom que
timerName
.OriginalL'auteur Davide Consonni
J'ai eu le même problème, avec mon JBoss as 6.1.
Après le meurtre de ce infinies (persistant) minuteurs, j'ai trouvé la solution suivante pour ÉVITER cette
problème à l'avenir:
Avec JBoss as 6.1 (EJB 3.1), il est possible de créer des non-persistant, de minuteries, ils NE SURVIVENT PAS à un redémarrage du serveur:
OriginalL'auteur Wolfgang Adamec
Vous pouvez aussi annuler le déploiement de votre application, cela va "tuer" tous les compteurs à zéro.
OriginalL'auteur Steve
Une autre méthode consiste à créer de la minuterie automatique (@Annexe) avec les "informations" de l'attribut et de vérifier ensuite dans le service de minuterie pour le timer avec la même info et si possible l'annuler:
OriginalL'auteur Ironluca
Essayer le
@PreDestroy
annotation à l'intérieur de la fève où vous souhaitez fermer.Par exemple:
Généralement les ressources de l'allocation est fait ici.
OriginalL'auteur Varada Pujari
Depuis EJB 3.1, il existe de nouvelles méthodes sur
TimerService
qui prennent unTimerConfig
au lieu d'unSerializable
de la charge utile. À l'aide deTimerConfig
permet de faire leTimer
non persistant.OriginalL'auteur Xavier Dury