Gerenciadores de Cronômetro
O gerenciador de cronômetro combina as funções do gerenciador de alarme de beans assíncronos e do escopo assíncrono. Portanto, quando um gerenciador de cronômetro é criado, ele utiliza internamente um escopo assíncrono para fornecer as funções de ciclo de vida do gerenciador de cronômetro.

Você pode consultar o gerenciador de cronômetros no espaço de nomes de JNDI (Java Naming and Directory Interface). Este recurso é diferente do gerenciador de alarme recuperado por meio do escopo de beans assíncronos. Cada consulta do gerenciador de cronômetro retorna um novo gerenciador de cronômetro lógico que pode ser destruído, independente de todos os demais gerenciadores de cronômetro.
Um gerenciador de cronômetro pode ser configurado com vários conjuntos de encadeamentos por meio do console administrativo. Para implementação, você pode ligar este gerenciador de cronômetro a uma referência de recurso no momento da montagem, portanto, a referência de recurso pode ser utilizada pelo aplicativo para consultar o gerenciador de cronômetro.
InitialContext ic = new InitialContext();
TimerManager tm = (TimerManager)ic.lookup("java:comp/env/tm/TimerManager");
O modelo de programação para configurar o listener de alarme e o listener do cronômetro é diferente. O exemplo de código a seguir mostra essa diferença.
Beans assíncronos | 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>
e o arquivo ibm-application-bnd.xml
deve conter algo semelhante ao seguinte:<resource-ref-name="java:app/env/timerManager" binding-name="tm/default"/>
Assegure-se de que seu arquivo de configuração Spring contenha um
valor semelhante:value="java:app/env/timerManager"