このページを使用して、特定の EJB コンテナー用の Enterprise JavaBeans (EJB) タイマー・サービスを構成および管理します。
この管理コンソール・ページを表示するには、とクリックします。
パーシスタント・タイマーと非パーシスタント・タイマーの両方が同時に存在 することができ、パーシスタント構成と非パーシスタント構成は互いに排他的では ありません。アプリケーションはパーシスタント・タイマーと非パーシスタント・タイマーの両方を使用することができます。
サーバーがシャットダウンされ、再始動される間もタイマーを維持する必要がある場合は、パーシスタント・タイマーを使用してください。そうでなく、サーバーがシャットダウンするとタイマーを取り消す必要がある場合は、非パーシスタント・タイマーを使用します。
サーバーが使用不可であるためにパーシスタント・タイマーが動かない場合、 行われなかった試行はサーバーが再始動したときにリカバリーされます。サーバーが使用不可であるために非パーシスタント・タイマーが動かない場合は、 行われなかった試行はリカバリーされません。これは、非パーシスタント・タイマーはサーバーのシャットダウンで取り消されるためです。
この製品では、EJB タイマー・サービスで使用する内部スケジューラー・インスタンスを提供しています。内部スケジューラー・インスタンスは、基本的な EJB タイマー機能のために事前構成されていて、EJB タイマー・サービス用の限定された構成設定を提供します。
パーシスタント・タイマー・タスクを管理するために内部スケジューラー・インスタンスを使用することを 指定できます。この場合、タスクはサーバー・プロセスに関連した Derby データベースに固定されます。 これを選択すると、「カスタム・スケジューラー・インスタンスを使用」オプションは排除されます。
内部スケジューラー・インスタンスがデフォルトです。あるいは、カスタム・スケジューラー・インスタンスを使用できます。
カスタム・スケジューラー・インスタンスを定義すると、EJB タイマー・サービスのより高度な構成を実行することができます。
カスタム・スケジューラー・インスタンスでは、内部 EJB タイマー・サービスの事前定義スケジューラー・インスタンス以外にも、構成オプションを提供しています。 クラスター環境で実行する場合にカスタム・スケジューラー・インスタンスを定義して、 すべてのクラスター・メンバーを単一のスケジューラー・インスタンスで実行できるようにすることも可能です。 この定義により、1 つのクラスター・メンバー上で作成されたパーシスタント EJB タイマーを、 他のクラスター・メンバー上で実行することができます。 カスタム・スケジューラー・インスタンスを提供すると、 パーシスタント EJB タイマーを、スケジュールされた他のタスクと同じデータベース内で保守することもできます。 これを選択すると、「内部 EJB タイマー・サービスのスケジューラー・インスタンスを使用」オプションは排除されます。
カスタム・スケジューラー・インスタンスを定義して、 スケジューラー・サービスによって使用されるスレッドを、EJB タイマー・サービスによって 使用されるスレッドから分離することができます。カスタム・スケジューラー・インスタンスからの EJB タイマー・サービス・スレッド を非パーシスタント・タイマーとで使用するために共有するか、 または、非パーシスタント・タイマー用に別のスレッド・プールを構成することがあります。EJB タイマー専用にした スレッド・プールがある場合でも、使用可能なスレッドの数が十分でないと、 タイマーの期限切れが遅れることがあります。タイマー数とタイマーの期限切れの頻度を 評価して、スレッド数を決める必要があります。
この EJB コンテナー用のパーシスタント EJB タイマーが保管されるデータ・ソースの、 Java Naming and Directory Interface (JNDI) 名を指定します。 名前空間で使用可能なデータ・ソースは、 EJB タイマーで使用できます。
複数の EJB コンテナーが、テーブルの接頭部を指定することで、異なるテーブルを使用しながら 1 つのデータ・ソースを共有できます。
| 通知 | 値 |
|---|---|
| データ型 | ストリング |
| デフォルト | jdbc/DefaultEJBTimerDataSource |
データ・ソースへのアクセスに使用されるユーザー名およびパスワードの認証別名を指定します。
| 通知 | 値 |
|---|---|
| データ型 | ストリング |
EJB タイマー・サービスのテーブル名の前に付加されるストリング (TASK、TREG、LMGR および LMPR)。 これらのテーブルが作成されていない場合は、サーバーの始動時に作成されます。 これらのテーブルを手動で作成する方法については、スケジューラー・サービスを参照してください。 各インスタンスで異なる接頭部ストリングを指定した場合、 複数の独立した EJB タイマー・サービスが同じデータベースを共有できます。 指定されたスケジューラーからタイマーを削除するために removeAutomaticEJBTimers コマンド が使用される場合、そのスケジューラーは固有のテーブル接頭部を 持っている必要があります。そうでないと、予期していたより多くのタイマーが 削除される場合があります。
| 通知 | 値 |
|---|---|
| データ型 | ストリング |
| デフォルト | EJBTIMER_ |
EJB タイマー・サービス・デーモンがデータベースをポーリングする間隔を指定します。各ポーリング・オペレーションは高価です。間隔が小さく、 複数のタスクがスケジュールされている場合、 ポーリングは非常に多くのシステム・リソースを使用します。新規タイマーをこの間隔よりも早く期限切れになるように設定した場合、 このタイマーは、この間隔が経過するまで実行されないことがあります。この値が大きすぎる場合、 多数のタイマー・イベントがメモリーにロードされる可能性があります。これは、次のポーリング間隔に発生するすべてのタイマー・イベントが毎回ロードされるため です。
| 通知 | 値 |
|---|---|
| データ型 | 整数 |
| 単位 | 秒 |
| デフォルト | 300 |
| 範囲 | 3 から 1800 まで |
並行した EJB タイマー・タスクを実行する場合に使用されるスレッド数。タイマー・スレッド数をゼロに設定すると、EJB タイマー・サービスは使用不可になります。
| 通知 | 値 |
|---|---|
| データ型 | 整数 |
| デフォルト | 1 |
| 範囲 | 0 から 500 まで |
EJB タイマーの管理、継続に使用するカスタム・スケジューラー・インスタンスの JNDI 名を指定します。 このフィールドは、「カスタム・スケジューラー・インスタンスを使用」が 選択された場合のみ使用されます。内部 EJB タイマー・サービス・スケジューラー・インスタンスの構成情報 は、ここで指定したスケジューラー・インスタンスには適用されません。
| 通知 | 値 |
|---|---|
| データ型 | ストリング |
失敗したタイムアウトを再試行できる最大数を 指定します。タイムアウトが再試行で成功すると、サーバーは それ以上の試行を停止します。再試行が失敗した場合、 タイムアウトが成功するか、タイムアウト制限に達するまで、 サーバーは再試行を続けます。再試行限度に達したら、タイムアウトが成功しなかった場合でも、 サーバーはタイムアウトの実行を試行しません。デフォルト値 の -1 は、無制限の再試行を示します。値 0 は、再試行なしを示し、 仕様に準拠していません。1 以上の値 は、その特定の回数だけ再試行が許可されることを示します。
| 通知 | 値 |
|---|---|
| データ型 | 整数 |
| デフォルト | -1 |
| 範囲 | -1 以上 |
失敗したタイムアウトの再試行の間隔を 指定します。ここで構成される間隔に関係なく、 最初の再試行は常にすぐ発生します。追加の再試行は、 ここで指定された間隔だけ待機します。値 0 は、すべての再試行が 即時であることを示します。1 以上の値は、 その特定の秒数だけ再試行は待機する必要があることを示します。
| 通知 | 値 |
|---|---|
| データ型 | 整数 |
| デフォルト | 300 秒 |
| 範囲 | 0 以上 |
非パーシスタント・タイマー用に使用される固有のスレッド・プール 内で使用可能なスレッドの数を指定します。この構成オプションは、 非パーシスタント・タイマーがスレッド・プールをパーシスタント・タイマーと 共有しない場合のみ使用可能です。この構成オプションは、「パーシスタント EJB タイマー構成」セクションの「タイマー・スレッド数」構成オプション とは異なります。このオプションは、デフォルト内部スケジューラー・インスタンスを 使用するパーシスタント・タイマーにのみ適用されるからです。
| 通知 | 値 |
|---|---|
| データ型 | 整数 |
| デフォルト | 1 |
| 範囲 | 0 から 500 まで |