X / Open XA


X/Open_XA

コンピューティングでは、X / Open XA 標準(「eXtendedArchitecture」の略)は、分散トランザクション処理(DTP)用にX / Open(後にThe Open Groupと統合)によって1991年にリリースされた仕様です。

コンテンツ
1 目標
2 建築
3 長所と短所
4 仕様
5 も参照してください
6 参考文献
7 外部リンク

目標
XAの目標は、異種コンポーネント間で実行される「グローバルトランザクション」の原子性を保証することです。トランザクションは、そのような別の人からお金を転送するなどの作業の単位です。分散トランザクションは、複数のデータストア(データベース、アプリケーションサーバー、メッセージキュー、トランザクションキャッシュなど)を更新します。整合性を保証するために、XAは2フェーズコミット(2PC)を使用して、トランザクションのすべての変更が有効になるようにします(コミット)またはしない(ロールバック)、つまり、アトミック。

建築
具体的には、XAは、グローバルトランザクションマネージャーと特定のアプリケーション間のインターフェイスを記述します。XAを使用するアプリケーションは、ライブラリまたは別のサービスを使用してXAトランザクションマネージャーを使用します。トランザクションマネージャーは、トランザクションの参加者(つまり、アプリケーションが書き込むさまざまなデータストア)を追跡し、参加者と協力して2フェーズコミットを実行します。つまり、XAトランザクションマネージャーは、アプリケーションとサーバーとの対話から分離されています。XAは、コミットまたはロールバックの決定のログを保持します。これは、システムが停止した場合に回復するために使用できます。
さまざまなリレーショナルデータベースやメッセージブローカーなど、多くのソフトウェアベンダーがXAをサポートしています(つまり、ソフトウェアはXAトランザクションに参加できます)。

長所と短所
XAは2フェーズコミットを使用するため、そのプロトコルの長所と短所は一般にXAに適用されます。主な利点は、XA(2PCを使用)が複数の異種テクノロジーにわたるアトミックトランザクションを可能にすることです(たとえば、単一のトランザクションには、異なるベンダーの複数のデータベース、電子メールサーバー、メッセージブローカーが含まれる可能性があります)が、従来のデータベーストランザクションは単一のデータベース。
主な欠点は、2PCがブロッキングプロトコルであるということです。他のサーバーは、トランザクションマネージャーが各トランザクションをコミットするか中止するかについての決定を発行するのを待つ必要がトランザクションが最終決定を待っている間にトランザクションマネージャーがオフラインになると、トランザクションマネージャーはスタックし、トランザクションマネージャーが再びオンラインになって決定を発行するまでデータベースロックを保持します。このロックの延長された保持は、同じデータベースを使用している他のアプリケーションを混乱させる可能性が
さらに、トランザクションマネージャーがクラッシュし、その決定の記録を回復できない場合(たとえば、決定のログ記録方法のバグやサーバー上のデータ破損のため)、手動による介入が必要になる場合が多くのXA実装は、トランザクションがコミットするか中止するかを独立して決定するための「エスケープハッチ」を提供します(トランザクションマネージャーからの連絡を待たずに)が、これは原子性保証に違反するリスクがあるため、緊急事態に備えています。

仕様
XA仕様では、トランザクションアクセスをサポートするためにリソースマネージャーが実行する必要があることについて説明しています。この仕様に従うリソースマネージャーは、XAに準拠していると言われます。
XA仕様は、1980年代に開発されたTuxedoシステムで使用されていたインターフェイスに基づいていましたが、それ以降、いくつかのシステムで採用されています。

も参照してください
2フェーズコミットプロトコル
分散リレーショナルデータベースアーキテクチャ(DRDA)

参考文献
^ Kleppmann、Martin(2017年4月2日)。データ集約型アプリケーションの設計(1版)。オライリーメディア。pp。361–364。ISBN 978-1449373320。
^ フィリップA.バーンスタイン; エリックニューカマー(2009)。トランザクション処理の原則。モーガンカウフマン。pp。330–336。ISBN  978-1-55860-623-4。

外部リンク
分散トランザクション処理:XA仕様(メタデータページも参照)