Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


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機能を次の表に示します。

表21‒2 TimerManagerおよびWorkManagerで使用できるJava EEの機能

機能名

使用可否

参照先

Enterprise Beanの呼び出し

×

ネーミングサービス

(1)

トランザクションサービスとリソース接続

(2)

ログとトレースの出力

(3)

コンテナ拡張ライブラリの利用

(4)

メソッドキャンセル

×

(凡例)

○:使用できる

×:使用できない

−:該当なし

注※

ただし,一部の機能については使用できません。使用できる機能については,「参照先」の列に示す情報を参照してください。

次に,TimerManagerおよびWorkManagerで使用できる機能を詳細に分類して説明します。また,それぞれの機能を使用する場合の注意事項についても説明します。

〈この項の構成〉

(1) ネーミングサービス

ネーミングサービスとして提供する機能がTimerManagerおよびWorkManagerで使用できるかどうかを次の表に示します。

表21‒3 ネーミングサービスの機能の使用可否

機能名

使用可否

JNDIを使用したDB Connectorのルックアップ

JNDIを使用したJava Mailのルックアップ

×

JNDIを使用したJavaBeansリソースのルックアップ

×

JNDIを使用したEntityManagerのルックアップ

×

JNDIを使用したEntityManagerFactoryのルックアップ

×

JNDIを使用したTimerManagerのルックアップ

×※1

JNDIを使用したWorkManagerのルックアップ

×※1

JNDIを使用したユーザトランザクションのルックアップ

※2

(凡例)

○:使用できる

×:使用できない

注※1 TimerManagerやWorkManagerのスケジュールの延長で,さらにTimerManagerやWorkManagerを呼び出すことはできません。

注※2 スケジュール元が,CMTでトランザクションを管理するEJBの場合は,java:comp/UserTransactionでルックアップできません。必ずHITACHI_EJB/SERVERS/<J2EEサーバ名>/SERVICES/UserTransactionを使用してルックアップしてください。

注意事項

スケジュール元で取得したDB ConnectorやユーザトランザクションをWorkManagerまたはTimerManager中で使用しないでください。必ず実行した処理を実装したTimer ListenerまたはWork内で取得してください。

(2) トランザクションサービスとリソース接続

リソースアダプタには,DB Connectorだけを使用できます。TimerManagerおよびWorkManagerで使用できるDB Connectorを次の表に示します。

表21‒4 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で使用できるかどうかを次の表に示します。

表21‒5 トランザクションサービスの機能の使用可否

機能名

使用可否

トランザクション

(ユーザトランザクション)

ローカルトランザクション

グローバルトランザクション

トランザクションの自動決着※1

トランザクションタイムアウト

コネクションプーリング

DB Connectorによるコネクションプーリング

コネクションプールのウォーミングアップ

コネクション数調節

コネクションシェアリング※2

コネクションアソシエーション

×

DB Connectorのステートメントプーリング

コネクションの障害検知

コネクション枯渇時のコネクション取得待ち

コネクション取得リトライ

コネクション自動クローズ

×

コネクションスイーパ

障害調査用SQLの出力

(凡例)

○:使用できる

△:一部の機能が使用できない

×:使用できない

注※1 ユーザトランザクションは,リスナの処理メソッドからリターンする前に決着する必要があります。トランザクションが決着していない場合,例外が発生しなくてもトランザクションはロールバックされて,メッセージ(KDJE43179-W)が出力されます。

注※2 シェアリングできるコネクションの範囲は,デフォルトで設定される「同一トランザクション」だけです。

注意事項

取得したDB Connectorのコネクションは自動でクローズされないため,必ずメソッド内でコネクションをクローズするように設定してください。

(3) ログとトレースの出力

ログとトレースを出力する機能がTimerManagerおよびWorkManagerで使用できるかどうかを次の表に示します。

表21‒6 ログとトレースの機能の使用可否

機能名

使用可否

ユーザログ

性能解析トレース

(凡例)

○:使用できる

参考

性能解析トレースのオペレーション名について

TimerManagerおよびWorkManagerの性能解析トレースでは,スケジュールごとに一意の番号を取得できます。この情報は,トレース情報のオペレーション名に出力されます。取得できるトレース情報の詳細については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「8. 性能解析トレースのトレース取得ポイントとPRFトレース取得レベル」を参照してください。

(4) コンテナ拡張ライブラリの利用

コンテナ拡張ライブラリの機能は,TimerManagerおよびWorkManagerを使用しない場合と同様に使用できます。