2フェーズコミット

ver5.0.6betaのMySQL clientから確認.

mysql> XA START 0x1;
Query OK, 0 rows affected (0.00 sec)

mysql> UPDATE t1 set c2=200 WHERE c1=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> XA END 0x1;
Query OK, 0 rows affected (0.00 sec)

mysql> XA PREPARE 0x1;
Query OK, 0 rows affected (0.04 sec)

mysql> XA COMMIT 0x1;
Query OK, 0 rows affected (0.03 sec)

まだドキュメントが見当たらないのですが,こんな感じで使えます."XA COMMIT"をした時点で他のセッションからも見えるようになります.

構文 XA ${コマンド名} ${xid}

xidはHEXじゃないとエラーがでます.コマンド名はSTARTの代わりにBEGINでもよかったりします.ここで紹介しただけではないです.近いうちに公式サイトにドキュメントが掲載されるでしょう.

JBossからのConnector/J 3.2経由については現在調査中.まだ上手く自分の中でまとまってません.



追記
"XA END xid SUSPEND"とやると未実装らしきエラーが・・・.JBossがこのコマンドを発行したがるのでこれを受け付けてもらえないとちょっと困るのですが.公式ForumのTransaction板に質問投げてみました.

http://forums.mysql.com/read.php?97,28410,28410#msg-28410