Distributed Transactions With MySQL XA
by Mark D. Matthews
Connector/J開発者による分散トランザクション機能の解説:
- Distributed Transaction Processingとは,複数のデータベースにまたがってトランザクションを実現するしくみ
- いわゆるTwo-Phase Commit(二層コミット)を使って実現する
- X/Open DTP Model:An Application Program, Resource Managers(RM), A Transaction Manager(TM)の3つ.
- XA Interface, XID:Global Transaction ID (max64bytes),Branch Qualifier(max64bytes),XID's must be globally unique
- XA Rountinesいろいろ
- 実際の仕事を開始する前に,TMが複数のRMに開始命令を出し,Commit時にはまたTMが複数のRMにCommit命令を出した上で全てOKなら実際にCommitさせる.
- 障害復旧:TMがRM1へ命令,RM1は自分の状況をTMに報告,TMがRM2へ命令,RM2は自分の状況をTMに報告,TMは全てのRMの情報を見比べて対処
- MySQL XA Statements:XA START xid [JOIN | RESUME]等
- MySQL XAはver5.1の機能?
- XA with JTAはver5.0.3から? Big CustomerのSAPのRequestで追加.
- Using MySQL XA statements one can implement complete TM relatively easy.
感想.参加者30名くらい.XAの一般論.説明20分,Q&A20分.もうちょっと説明のボリューム欲しかったかも.