Gestionnaire de compteurs
Le gestionnaire de compteur combine les fonctions du gestionnaire d'alarmes des beans asynchrones et celles de la portée asynchrone. Par conséquent, lorsqu'un gestionnaire de compteurs est créé, il utilise en mode interne une portée asynchrone pour se doter de fonctions de cycle de vie.

Vous pouvez rechercher le gestionnaire de compteur dans l'espace de nom JNDI (Java Naming and Directory Interface). Cette capacité le rend différent du gestionnaire d'alarmes qui est extrait par la portée des beans asynchrones. Chaque recherche de gestionnaire de compteurs renvoie un nouveau gestionnaire logique de compteurs, qui peut être détruit indépendamment de tous les autres gestionnaires de compteurs.
Les gestionnaires de compteurs peuvent être configurés avec un certain nombre de pools d'unités d'exécution à l'aide de la console d'administration. Pour déployer ce gestionnaire, vous pouvez le lier à une référence de ressource lors de l'assemblage et permettre ainsi à l'application d'utiliser cette référence de ressource pour rechercher le gestionnaire de compteurs.
InitialContext ic = new InitialContext();
TimerManager tm = (TimerManager)ic.lookup("java:comp/env/tm/TimerManager");
Le modèle de programmation qui permet de configurer le module d'écoute d'alarmes est différent de celui qui permet de configurer le module d'écoute de compteurs. L'exemple de code suivant montre cette différence.
Asynchronous beans | CommonJ |
---|---|
la classe publique ABAlarmListener implémente AlarmListener { public void fired(Alarm alarm) { System.out.println(“Alarm fired. Context =” + alarm.getContext()); } |
public class StockQuoteTimerListener implements TimerListener { String context; String url; public StockQuoteTimerListener(String context, String url){ this.context = context; This.url = url; } public void timerExpired(Timer timer) { System.out.println(“Timer fired. Context =”+ ((StockQuoteTimerListener)timer.getTimerListener()) .getContext()); } public String getContext() { return context; } } |
<res-ref-name>java:app/env/timerManger</res-ref-name>
et le fichier ibm-application-bnd.xml doit comporter un contenu semblable à ce qui suit :<resource-ref-name="java:app/env/timerManager" binding-name="tm/default"/>
Assurez-vous que votre fichier de configuration Spring contient une valeur semblable à celle qui suit :value="java:app/env/timerManager"