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分.もうちょっと説明のボリューム欲しかったかも.