Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  制約と制限  /  XA トランザクションの制約

D.6 XA トランザクションの制約

XA トランザクションのサポートは、InnoDB ストレージエンジンに限られています。

外部 XA の場合、MySQL Server がリソースマネージャーとして機能し、クライアントプログラムがトランザクションマネージャーとして機能します。内部 XA の場合、MySQL サーバー内のストレージエンジンがリソースマネージャーとして機能し、サーバー自体がトランザクションマネージャーとして機能します。内部 XA サポートは、個々のストレージエンジンの機能によって制限されています。内部 XA は、複数のストレージエンジンが関与する XA トランザクションを処理するために必要になります。内部 XA の実装では、ストレージエンジンがテーブルハンドラレベルでの 2 フェーズコミットをサポートしている必要であり、現在これは InnoDB にのみ当てはまります。

XA START では、JOIN および RESUME 句はサポートされていません。

XA END では、SUSPEND [FOR MIGRATE] 句はサポートされていません。

xid 値の bqual 部分が、グローバルトランザクション内の XA トランザクションごとに異なる必要があるという要件が、現在の MySQL XA 実装の制限です。これは XA の仕様によるものではありません。

XA トランザクションが PREPARED 状態に達していれば、MySQL サーバーが (たとえば、Unix の kill -9 で) 強制終了されたり、異常にシャットダウンしたりした場合でも、サーバーが再起動したあとでトランザクションを継続できます。ただし、クライアントが再接続し、トランザクションをコミットした場合、そのトランザクションは、コミットされていてもバイナリログには記録されません。これは、データとバイナリログの同期性がなくなったことを意味します。XA はレプリケーションとともに安全に使用できません。

PREPARED 状態に達しているものも含めた保留中の XA トランザクションを、サーバーがロールバックする可能性があります。これは、クライアントの接続が終了して、サーバーが起動を続ける場合、またはクライアントが接続していて、サーバーが正常にシャットダウンする場合に起こります。(後者の場合、サーバーは、各接続に終了というマークを付けから、関連付けられた PREPARED XA トランザクションをロールバックします。)PREPARED XA トランザクションをコミットまたはロールバック可能である必要がありますが、これはバイナリロギングメカニズムに変更を加えずに行うことはできません。


User Comments
Sign Up Login You must be logged in to post a comment.