X/Openアプリケーションは、分散トランザクション処理(DTP)環境で動作します。抽象モデルでは、X/Openアプリケーションはリソース・マネージャ(RM)に各種サービスの提供を要求します。たとえば、データベース・リソース・マネージャは、データベース内のデータにアクセスします。リソース・マネージャは、アプリケーションのすべてのトランザクションを制御するトランザクション・マネージャ(TM)と対話します。
図3-3では、DTPモデルのコンポーネントで、Oracleデータベース内のデータに効率的にアクセスするために対話できる方法を示しています。このDTPモデルでは、リソース・マネージャとトランザクション・マネージャの間にXAインタフェースが指定されています。Oracleでは、XA準拠のライブラリが提供され、このライブラリは、X/Openアプリケーションにリンクさせる必要があります。また、アプリケーション・プログラムとリソース・マネージャ間でネイティブ・インタフェースを指定する必要もあります。
トランザクション・マネージャとリソース・マネージャがアプリケーション・プログラムと対話する方法を指定するこのDTPモデルについては、X/Openガイド『Distributed Transaction Processing Reference Model』および関連出版物にで説明されていますが、これらは次の宛先に書面で請求すれば入手できます。
X/Open Company Ltd.1010 El Camino Real, Suite 380Menlo Park, CA 94025
XAインタフェースの使用方法は、ご使用のトランザクション処理(TP)モニターのユーザー・ガイドを参照してください。
X/Openアプリケーションでは、データベースへの接続の確立およびメンテナンスは行われません。かわりに、Oracleにより提供されるトランザクション・マネージャとXAインタフェースにより、データベースの接続および切断が透過的に処理されます。したがって、通常、X/Open準拠のアプリケーションでは、CONNECT
文は実行されません。
X/Openアプリケーションでは、グローバル・トランザクションに影響を与えるCOMMIT
、ROLLBACK
、SAVEPOINT
およびSET
TRANSACTION
などの文を実行しないでください。たとえば、コミットはトランザクション・マネージャで処理されるため、アプリケーションではCOMMIT
文を実行しないでください。また、CREATE
、ALTER
およびRENAME
などのSQLデータ定義文では暗黙的なコミットが発行されるため、アプリケーションでこれらの文を実行しないでください。
アプリケーションでは、さらなるSQL操作を妨げるエラーが検出された場合、内部のROLLBACK
文を実行できます。ただし、今後リリースされるXAインタフェースでは、変更される可能性もあります。
X/OpenアプリケーションでOCIコールを発行する場合は、ランタイム・ライブラリ・ルーチンSQLLD2を使用する必要があります。このルーチンにより、XAインタフェースを通じて確立された指定の接続のために、LDAが設定されます。SQLLD2コールの説明は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。OCOM、OCON、OCOF、ORLON、OLON、OLOGおよびOLOGOFは、X/Openアプリケーションからは発行できません。