分散DB
以前に1-pipe方式では、XAの関数の中で有効な実装が必要なのはxa_recover()(とxa_open/close())だけと書いたがこれは間違いであった。xa_recover()要求に対しリストアップされるin-doubtトランザクションに対してxa_rollback()かxa_commit()を発行する(msd…
少し気になっていたインターフェイスポインターのスレッドをまたがる使用についてであるが、まずDTC Proxyから渡されるITransactionEnlistmentAsyncへのインターフェイスポインターはThreadingModel=Bothで実装されているようなので、どのスレッドからも同じ…
前回記載のITransactionResourceAsyncオブジェクトの早死に問題をもう少し追いかけてみた。今回はITransactionReourceAsyncオブジェクトを正式にCOMを通してCoCreateInstanceで作成した。更に念には念を入れてCoLoadLibraryも呼び出してみた。しかし残念なが…
前回記載のone-pipe方式の動作が気になったので調べてみた。前回はWindows2000だったが、今回はWindowsXP SP2を使用した。securityを強化しているせいか、なかなか動作せずに(XARMCreateでエラー)苦労したが、なんとか動作するようになった。実行内容を確…
以前にODBCドライバ(psqlodbc)を使って、MSDTC(MicroSoft Distributed Transaction Coordiantor)からXA-Compliantなデータベースへのアクセスをトレースしたことがある。今回そのコードを引っ張り出してきて再度試してみた。ちなみにMSDTCはXAインターフェ…
PGでは2PCらしきものの実装が終り、徐々にその後の議論が始まっているようである。全く順序が逆であろう。XAなどの標準が存在しなかった時代から2PCを実装しているデータベースがXA-Compliancyを実現するのに苦労したとしてもそれはやむをえないことだった…
PGの今回の2PC実装について引き続き少し調べてみたが、中途半端で危険というのが印象だ。最近の(5月位からの)議論にはXAインターフェイスのことはほとんど出てきていないようだし、わずかに出た質問(もっともな質問だと思うが)も無視されてしまったよう…
PGに2PC(2相コミット)が取り込まれることになったようだ。早速 http://itpro.nikkeibp.co.jp/members/ITPro/oss/20050616/162881/ の解説を見てみたがPREPARE TRANSACTION等のコマンド追加により2PCを実現するものであり、以前に見たことのあるFE/BEプ…