クライアントアプリケーションがサーバオブジェクトに対してオペレーション実行時に,クライアント側のトランザクションコンテキストをサーバに伝達できます。これをプロパゲーションといいます。プロパゲーションには,暗黙的プロパゲーションと明示的プロパゲーションの2種類があります。一般的なアプリケーションプログラムでは,暗黙的プロパゲーションを使用します。直接コンテキスト管理を使用している場合や,特別なプロパゲーションルールを設けたい場合だけ,明示的プロパゲーションを使用してください。
(1) 暗黙的プロパゲーション
サーバオブジェクトへのリクエスト発行時に,間接コンテキスト管理によってクライアント側のCurrent擬似オブジェクトと関連づけられているトランザクションコンテキストを,トランザクションサービスがリクエストとともに暗黙的にプロパゲーションします。このため,クライアントがトランザクションコンテキストに直接干渉することなくプロパゲーションが行われます。暗黙的プロパゲーションを使用する場合は,サーバ側POAポリシーのOTSPolicyにADAPTS,またはREQUIRESを設定していなければなりません。直接コンテキスト管理を行っている場合,またはサーバ側POAポリシーのOTSPolicyにFORBIDSを設定している場合は,リクエスト時にトランザクションサービスによる暗黙的プロパゲーションは行われません。
(a) OTS 1.1準拠のアプリケーションプログラムとの相互接続
暗黙的プロパゲーションでは,OTS 1.1準拠のアプリケーションプログラム(TPBroker Version 3のアプリケーションプログラムなど)と相互接続できる場合があります。暗黙的プロパゲーションでの,OTS 1.1準拠のアプリケーションプログラムとの相互接続性を次の表に示します。
表3-1 OTS 1.1準拠のアプリケーションプログラムとの相互接続性(暗黙的プロパゲーション)
クライアント | サーバ | ||||
---|---|---|---|---|---|
TPBroker Version 3 | TPBroker Version 5 | ||||
C++ | Java | C++ | Java | ||
TPBroker Version 3 | C++ | ○ | ○ | × | × |
Java | ○ | ○ | × | × | |
TPBroker Version 5 | C++ | ○※ | ○ | ○ | ○ |
Java | ○※ | ○ | ○ | ○ |
(2) 明示的プロパゲーション
トランザクションサービスによって定義されたControlやCoordinatorなどのオブジェクトのリファレンスをパラメタとして明示的にサーバオブジェクトに渡すことによって,アプリケーションプログラムがトランザクションコンテキストをプロパゲーションします。サーバ側POAポリシーのOTSPolicyには,通常はFORBIDSを設定します。明示的プロパゲーションを使用すると,チェックドトランザクション機能が無効となりますので注意してください。
(a) OTS 1.1準拠のアプリケーションプログラムとの相互接続性
明示的プロパゲーションでは,OTS 1.1準拠のアプリケーションプログラム(TPBroker Version 3のアプリケーションプログラムなど)と相互接続できます。明示的プロパゲーションでの,OTS 1.1準拠のアプリケーションプログラムとの相互接続性を次の表に示します。
表3-2 OTS 1.1準拠のアプリケーションプログラムとの相互接続性(明示的プロパゲーション)
クライアント | サーバ | ||||
---|---|---|---|---|---|
TPBroker Version 3 | TPBroker Version 5 | ||||
C++ | Java | C++ | Java | ||
TPBroker Version 3 | C++ | ○ | ○ | ○ | ○ |
Java | ○ | ○ | ○ | ○※ | |
TPBroker Version 5 | C++ | ○ | ○ | ○ | ○ |
Java | ○ | ○ | ○ | ○ |