21.2.2 スレッドの非同期並行処理で使用できるJava EEの機能
非同期並行処理として実行する処理の中では,Java EEの機能を使用できます。Java EEの機能を使用できるTimerManagerおよびWorkManagerのAPIを次に示します。
- TimerManager
-
-
TimerListener.timerExpired
設定した時間に達したときに実行されるメソッドです。
-
StopTimerListener.timerStop
TimerManager.stopメソッドが実行されたとき,またはアプリケーションが停止したときに実行されるメソッドです。
-
CancelTimerListener.timerCancel
TimerManager.cancelメソッドが実行されたときに実行されるメソッドです。
-
- WorkManager
-
-
Work.run
WorkManagerで非同期に実行される処理メソッドです。
-
WorkListener.workAccepted
スケジュールしたWorkをWorkManagerが受け付けるときに実行されるメソッドです。
-
WorkListener.workCompleted
スケジュールされたWorkのrunメソッドが終了した直後に実行されるメソッドです。
-
WorkListener.workRejected
スケジュールしたWorkをWorkManagerが受け付けたあとに,スケジュール処理を継続できなくなった場合に実行されるメソッドです。
-
WorkListener.workStarted
スケジュールされたWorkのrunメソッドが実行される直前に実行されるメソッドです。
-
それぞれのAPIの詳細については,Timer and Work Manager for Application ServersのAPI仕様を参照してください。
TimerManagerおよびWorkManagerで使用できるJava EE機能を次の表に示します。
機能名 |
使用可否 |
参照先 |
---|---|---|
Enterprise Beanの呼び出し |
× |
− |
ネーミングサービス |
○※ |
(1) |
トランザクションサービスとリソース接続 |
○※ |
(2) |
ログとトレースの出力 |
○ |
(3) |
コンテナ拡張ライブラリの利用 |
○ |
(4) |
メソッドキャンセル |
× |
− |
次に,TimerManagerおよびWorkManagerで使用できる機能を詳細に分類して説明します。また,それぞれの機能を使用する場合の注意事項についても説明します。
(1) ネーミングサービス
ネーミングサービスとして提供する機能がTimerManagerおよびWorkManagerで使用できるかどうかを次の表に示します。
機能名 |
使用可否 |
---|---|
JNDIを使用したDB Connectorのルックアップ |
○ |
JNDIを使用したJava Mailのルックアップ |
× |
JNDIを使用したJavaBeansリソースのルックアップ |
× |
JNDIを使用したEntityManagerのルックアップ |
× |
JNDIを使用したEntityManagerFactoryのルックアップ |
× |
JNDIを使用したTimerManagerのルックアップ |
×※1 |
JNDIを使用したWorkManagerのルックアップ |
×※1 |
JNDIを使用したユーザトランザクションのルックアップ |
○※2 |
- 注意事項
-
スケジュール元で取得したDB ConnectorやユーザトランザクションをWorkManagerまたはTimerManager中で使用しないでください。必ず実行した処理を実装したTimer ListenerまたはWork内で取得してください。
(2) トランザクションサービスとリソース接続
リソースアダプタには,DB Connectorだけを使用できます。TimerManagerおよびWorkManagerで使用できるDB Connectorを次の表に示します。
DB Connector名 |
使用可否 |
---|---|
DBConnector_HiRDB_Type4_CP.rar |
○ |
DBConnector_HiRDB_Type4_XA.rar |
○ |
DBConnector_Oracle_CP.rar |
○ |
DBConnector_Oracle_XA.rar |
○ |
DBConnector_HiRDB_Type4_CP_Cosminexus_RM.rar |
× |
DBConnector_HiRDB_Type4_XA_Cosminexus_RM.rar |
× |
DBConnector_Oracle_CP_Cosminexus_RM.rar |
× |
DBConnector_Oracle_XA_Cosminexus_RM.rar |
× |
DBConnector_CP_ClusterPool_Root.rar |
× |
DBConnector_Oracle_CP_ClusterPool_Member.rar |
× |
DB Connectorを使用する場合,トランザクションサポートレベルには,NoTransaction,LocalTransaction,またはXATransactionを指定してください。DB Connectorのコネクションを取得するには,DB Connectorの別名を設定する必要があります。JNDIによるルックアップでは,設定した別名を使用して,DB Connectorのコネクションを取得してください。DB Connectorの別名を使用したコネクションの取得方法については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.6 Enterprise BeanまたはJ2EEリソースへの別名付与(ユーザ指定名前空間機能)」を参照してください。
リソース接続およびトランザクションサービスとして提供する機能がTimerManagerおよびWorkManagerで使用できるかどうかを次の表に示します。
機能名 |
使用可否 |
|
---|---|---|
トランザクション (ユーザトランザクション) |
ローカルトランザクション |
○ |
グローバルトランザクション |
○ |
|
トランザクションの自動決着※1 |
△ |
|
トランザクションタイムアウト |
○ |
|
コネクションプーリング |
DB Connectorによるコネクションプーリング |
○ |
コネクションプールのウォーミングアップ |
○ |
|
コネクション数調節 |
○ |
|
コネクションシェアリング※2 |
△ |
|
コネクションアソシエーション |
× |
|
DB Connectorのステートメントプーリング |
○ |
|
コネクションの障害検知 |
○ |
|
コネクション枯渇時のコネクション取得待ち |
○ |
|
コネクション取得リトライ |
○ |
|
コネクション自動クローズ |
× |
|
コネクションスイーパ |
○ |
|
障害調査用SQLの出力 |
○ |
- 注意事項
-
取得したDB Connectorのコネクションは自動でクローズされないため,必ずメソッド内でコネクションをクローズするように設定してください。
(3) ログとトレースの出力
ログとトレースを出力する機能がTimerManagerおよびWorkManagerで使用できるかどうかを次の表に示します。
機能名 |
使用可否 |
---|---|
ユーザログ |
○ |
性能解析トレース |
○ |
- 参考
-
性能解析トレースのオペレーション名について
TimerManagerおよびWorkManagerの性能解析トレースでは,スケジュールごとに一意の番号を取得できます。この情報は,トレース情報のオペレーション名に出力されます。取得できるトレース情報の詳細については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「8. 性能解析トレースのトレース取得ポイントとPRFトレース取得レベル」を参照してください。
(4) コンテナ拡張ライブラリの利用
コンテナ拡張ライブラリの機能は,TimerManagerおよびWorkManagerを使用しない場合と同様に使用できます。