rollbackを実現する)のある処理が可能となります。Group(旧X/Open)という標準化団体が定義したもので、実質分散トランザクションのデファクトスタンダードとなっています。ORACLEも含めメジャーなRDBMSはほぼXAトランザクションに対応しており、XAトランザクションを利用することでORACLEとDB2といった異種DB間をまたがるトランザクションを実現すること等が可能です。TM(トランザクション・マネージャ)・・・分散トランザクションを管理する部分のプログラム。トランザクションの開始やcommit、rollbackなどは全てTMが管理するためXAトランザクションの中にcommitや暗黙commitが発生するDDL文等を実装してはいけない。RM(リソース・マネージャ)・・・データ等資源を管理するプログラム。ORACLEデータベースもRMとなる。rollback)の2段階にわたってトランザクションの確定が行われる仕組み。prepareとcommitの間で何らかの異常が起きた場合RM側ではcommitすべきかrollbackすべきか判断できないためインダウトトランザクションという不確定なトランザクションが残る場合があります。XAトランザクションのサンプルプログラム以下はPro*Cで実装したXAサンプルです。実行後何もキーを押さず30秒ほどしてタイムアウトが発生するとインダウトトランザクションになります。0;}コンパイルは以下のようにします。-lmインダウトトランザクションの解決ペンディング中のトランザクションや、インダウトトランザクションがある場合以下のように関連ディクショナリに情報が表示されるようになります。4272616E63683100000000000000000000000000また、インダウトトランザクションが保持しているロックで競合した場合ロック獲得の待機はせず以下のようなエラーが即発生します。*行1でエラーが発生しました。インダウト分散トランザクション9.29.65022がロックを保持しています。インダウトトランザクションを解決するにはforceオプション付でcommiet/rollbackを実行します。残ったトランザクション情報はdbms_transactionパッケージで消去することができます。'9.29.65022';コミットが完了しました。dbms_transaction.PURGE_LOST_DB_ENTRY('9.29.65022');PL/SQLプロシージャが正常に完了しました。本サイトはリンクフリーです。本サイトの情報により発生した問題等については一切責任を負えません。管理人への連絡はftpsaba0123@hotmail.comまでどうぞ。