[pgsql-jp: 36649] Re: 異なるデータベース間のテーブル結合

Tatsuo Ishii ishii @ sraoss.co.jp
2006年 1月 20日 (金) 00:15:39 JST


石井です.

> 更新系の処理でもdblinkを利用することは可能です。
> しかし、リモート側の処理に関してはローカルの
> トランザクション管理の対象となりません
> (リモート側は常にコミットされるイメージ)

そうですか?単にdblink_execで,リモート側でも明示的にトランザクション
を開始しておけば,「常にコミットされるイメージ」にはならないと思います
けど.

> このため、更新系のトランザクションの中で
> 利用するときは注意が必要です。
> (ローカル側のロールバックがリモート側に反映されないためです)

ローカル側がロールバックしてしまったら,dblinkでリモート側もロールバッ
クすれば良いだけではないですか?

それよりも,ローカル側がコミットできたのに,リモート側がエラーになって
しまったときの方が大変ですよね.ローカル側のコミットを取り消せないです
から.

これを解決するには2相コミットを使えばよいのですが,8.1以降限定になって
しまいます.
--
Tatsuo Ishii
SRA OSS, Inc. Japan



pgsql-jp メーリングリストの案内