タイマー・マネージャー
タイマー・マネージャーは、非同期 Bean アラーム・マネージャーおよび非同期有効範囲の機能を結合します。 そのためタイマー・マネージャーは、その作成時に、内部的に非同期有効範囲を使用して、タイマー・マネージャーのライフサイクル機能を提供します。

タイマー・マネージャーは、Java Naming and Directory Interface (JNDI) 名前空間で検索できます。 この機能は、非同期 Bean 有効範囲を介して取り出されるアラーム・マネージャーと異なります。タイマー・マネージャーを検索するたびに、新規の論理タイマー・マネージャーが戻されます。この論理タイマー・マネージャーは、他のすべてのタイマー・マネージャーとは独立に破棄することができます。
タイマー・マネージャーは、管理コンソールを介して、多くのスレッド・プールのメンバーを使用して構成できます。デプロイメントの場合は、アセンブリー時にこのタイマー・マネージャーをリソース参照にバインドできるので、アプリケーションはこのリソース参照を使用して、タイマー・マネージャーを検索できます。
タイマー・マネージャーの検索のための Java コードは、次のようになります。
InitialContext ic = new InitialContext();
TimerManager tm = (TimerManager)ic.lookup("java:comp/env/tm/TimerManager");
アラーム・リスナーおよびタイマー・リスナーをセットアップするためのプログラミング・モデルは異なっています。以下のコード例は、その違いを示したものです。
非同期 Bean | 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; } } |
注: CommonJ タイマー・マネージャーを使用する場合は、必ず java:app または java:global のコンテキスト内で application.xml のリソース参照を構成してください。例えば、application.xml ファイルは、以下のようなものになります。
<res-ref-name>java:app/env/timerManger</res-ref-name>
ibm-application-bnd.xml ファイルには、以下のようなものが含まれます。
<resource-ref-name="java:app/env/timerManager" binding-name="tm/default"/>
Spring 構成ファイルに類似した値が含まれることを確認してください。
value="java:app/env/timerManager"