Hitachi

TPBroker Version 5 トランザクショナル分散オブジェクト基盤 TPBroker ユーザーズガイド


4.1.2 XAインタフェース

TPBrokerはXAインタフェースのすべての関数をサポートしていますが,マイグレーション機能についてはサポートしていません。

〈この項の構成〉

(1) リソースマネージャとの連携

TPBrokerとXAインタフェースを使用して,DBMSなどのリソースマネージャと連携し,トランザクションを処理できます。リソースマネージャと連携する場合は,「7.4.1 XAインタフェースをサポートしたリソースマネージャの場合」に示す手順に従ってください。

(2) マルチスレッド対応

TPBrokerのXAインタフェースサポートはマルチスレッドに対応しているため,マルチスレッド環境でXAインタフェースによってリソースマネージャと連携できます。TPBrokerはシングルスレッド環境をサポートしていません。リソースマネージャによってはXAライブラリがマルチスレッドに対応していないものがあり,この場合,TPBrokerと連携できません。

マルチスレッド環境でXAインタフェースによってリソースマネージャと連携する場合,リソースマネージャによって,次のような違いがあります。

TPBrokerでは,リソースマネージャ定義set_xa_open_scope(xa_open発行単位)およびset_xa_open_timing(xa_open発行タイミング)を設定することでxa_openおよびxa_close関数の発行のタイミングを変更し,リソースマネージャとXAインタフェースで連携できるようにしています。

(3) OTSとのモデルインタオペラビリティ

OTSインタフェースで作成されたアプリケーションプログラムを,XAインタフェースを使用してリソースマネージャと連携させることができます。ただし,OTSのアプリケーションモデルは,フラットトランザクション,間接コンテキスト管理,および暗黙的プロパゲーションを使用したものに限ります。

したがって,XAインタフェースを使用してリソースマネージャと連携する場合は,ネスティッドトランザクションは使用できません。また,直接コンテキスト管理および明示的プロパゲーションを使用する場合は,トランザクションをスレッドに関連づけてから(Currentオブジェクトのresumeオペレーションを発行してから)リソースマネージャにアクセスする必要があります。