Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説

[目次][用語][索引][前へ][次へ]

2.3.3 SessionBean使用時のトランザクション

SessionBean使用時のトランザクションを次の図に示します。

図2-31 SessionBean使用時のトランザクション

[図データ]

SessionBean使用時,HCSCサーバ内はCMT(Container Managed Transaction)で動作します。また,標準受付(SessionBean)のトランザクション属性はRequired属性です。そのため,サービスリクエスタがトランザクションスコープ内でHCSCサーバの標準受付(SessionBean)を呼び出したとき,トランザクションコンテキストがHCSCサーバ側に引き継がれ,HCSCサーバ内の処理はサービスリクエスタ側のトランザクションスコープ内に入ります。また,サービスリクエスタがトランザクションスコープ外でHCSCサーバの標準受付(SessionBean)を呼び出したとき,HCSCサーバ側で新しいトランザクションが開始されます。

なお,サービス部品のトランザクション属性はRequiresNewまたはNotSupportedでなければなりません。そのため,トランザクションは,サービス部品側には引き継がれません。SessionBeanを利用したサービス部品のトランザクション属性を指定できるかどうかについては,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「2.6.2 SessionBeanを利用したサービス部品の適用範囲」を参照してください。

ビジネスプロセスはBMT(Bean Managed Transaction)で動作します。ビジネスプロセス自体は新たなトランザクションで制御します。ビジネスプロセスを呼び出す場合は,ビジネスプロセスのサービス呼出アクティビティに定義したサービス部品呼び出し処理ごとに,新たなトランザクションで制御します。そのため,サービスリクエスタがトランザクションスコープ内でHCSCサーバの標準受付(SessionBean)を呼び出したときでも,トランザクションはサービスアダプタまで引き継がれません。ビジネスプロセスを介した場合のトランザクションを次の図に示します。

図2-32 ビジネスプロセスを介した場合のトランザクション

[図データ]

永続化するビジネスプロセスの場合,ビジネスプロセスを実行する過程でのトランザクションについては,「3.4 ビジネスプロセスのトランザクション」を参照してください。