Zeitgebermanager
Der Zeitgebermanager kombiniert die Funktionen des Alarmmanagers für asynchrone Beans und den asynchronen Bereich. Wenn ein Zeitgebermanager erstellt wird, verwendet er intern einen asynchronen Bereich für die Bereitstellung der Lebenszyklusfunktionen für den Zeitgebermanager.

Sie können den Zeitgebermanager im JNDI-Namespace suchen. Dies unterscheidet sich vom Alarmmanager, der über den Bereich für asynchrone Beans abgerufen wird. Jede Lookup-Operation für den Zeitgebermanager gibt einen neuen logischen Zeitgebermanager zurück, der unabhängig von allen anderen Zeitgebermanagern gelöscht werden kann.
Ein Zeitgebermanager kann in der Administrationskonsole mit einer Anzahl von Thread-Pools konfiguriert werden. Für die Implementierung können Sie den Zeitgebermanager während der Assemblierung an eine Ressourcenreferenz binden, damit die Ressourcenreferenz von der Anwendung für das Suchen des Zeitgebermanagers verwendet werden kann.
InitialContext ic = new InitialContext();
TimerManager tm = (TimerManager)ic.lookup("java:comp/env/tm/TimerManager");
Die Programmiermodelle für Alarmlistener und Zeitgeberlistener sind unterschiedlich. Der folgende Beispielcode verdeutlicht diese Unterschiede.
Asynchrone Beans | CommonJ |
---|---|
public class ABAlarmListener implements 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>
Die Datei ibm-application-bnd.xml sollte einen ähnlichen Eintrag wie den folgenden haben: <resource-ref-name="java:app/env/timerManager" binding-name="tm/default"/>
Stellen Sie sicher, dass Ihre Spring-Konfigurationsdatei einen ähnlichen Wert enthält: value="java:app/env/timerManager"