エンタープライズ Bean (EJB) パーシスタント・タイマー・アプリケーションの開発
EJB パーシスタント・タイマーは、コンテナーによって自動的に作成されるか、またはアプリケーションによってプログラマチックに作成されるかのいずれかです。どちらのタイプのパーシスタント・タイマーも、server.xml ファイル内で EJB タイマー・サービス用に構成されたデータベース内の表に保管されます。
このタスクについて
パーシスタント・タイマーは、作成された後、以下のうちの 1 つが起こるまでデータベース内に存在します。
- タイマーに以降の期限切れがスケジュールされていない。例えば、シングル・アクション・タイマーの有効期限が切れた後で正常に実行している場合などです。
- アプリケーションによってタイマーが取り消される。
- EJB タイマー・サービス MBean (EJBPersistentTimerServiceMXBean) を使用してタイマーが取り消される。
- タイマーがデータベースから手動で削除される。例えば、タイマー・サービス・データベースが初期化または削除される場合などです。
また、EJB パーシスタント・タイマーは、アプリケーション名、モジュール名、および Bean 名に基づいて EJB と関連付けられることに注意してください。アプリケーションが更新され、 これらの名前のいずれかが変更されると、タイマーはデータベース内に存続するにも関わらず、もう期限切れになることなく実行していながら、もう存在していないように見えます。
Enterprise JavaBeans 仕様に、アプリケーションがデプロイされると自動タイマーがコンテナーによって作成されると宣言されています。Liberty では、 これはアプリケーションがサーバー・プロセス内で初めて開始されたときに起こります。最初のアプリケーション開始中に、 自動的に作成されたパーシスタント・タイマーは、アプリケーションがデプロイされたことを示す標識と一緒にパーシスタント・タイマー・データベース内に保管されます。コンテナーは、 アプリケーションがデプロイされたことを示す標識とタイマーの両方が EJB パーシスタント・タイマー・データベースから削除されるまでは、自動パーシスタント・タイマーを再作成しません。
手順
以下の例のように、server.xml ファイル内で EJB パーシスタント・タイマー・フィーチャーを有効にします。
<featureManager>
<feature>ejbPersistentTimer-3.2</feature>
</featureManager>