[pgsql-jp: 29139] Re: 同時更新の制御2

TVH51179 @ biglobe.ne.jp TVH51179 @ biglobe.ne.jp
2003年 2月 19日 (水) 10:52:14 JST


小林です。いつもお世話になっております。

>  みやかわ@ホビー・データです。
> 
>  ??? そのためにトランザクションがあるのでは?
> 
ご指摘の通りでございます。

トランザクションは片方が更新していても読込はでき、
更新時に片方のcommitを待つと認識しております。

でも、今回は
片方が更新しようとすると、もう片方で読み込んでいるのでWAITし、
                  ^^^^^^^
もう片方においても更新時に、片方が読み込んでいるのでWAITして、
             ^^^^^^^
”デッドロックを検出する”みたいなことが可能なのかな?
と思ったのですが、どうなんでしょう??

と、いうのは、カーソルを使用して順次読み込みを行っているので、
カーソルの定義時に"for update"が使えなくて困っている次第であります。
FETCH後にselectするのも格好悪いし・・・

何かいい方法ないでしょうか?

文章能力低くて申し訳ないです・・・よろしくお願いいたします。

小林 克彦(TVH51179 @ biglobe.ne.jp)

> At 午後 05:59 03/02/18 +0900, TVH51179 @ biglobe.ne.jp wrote:
> >小林と申します。いつもお世話になっております。
> >
> >度々申し訳ありません。
> >
> >RedHatLinux-7.2にて
> >Postgres-7.3.1を使用しております。
> >
> >2つのプロセスが同じレコードに対して同時に読み込み&更新
> >(読み込み−読み込み−更新−更新)を行おうとしています。
> >
> >片方のプロセスが更新時にもう片方のプロセスが読み込んでいるのを検出して
> >WAITすることは可能なのでしょうか?
> >
> >または、
> >
> >片方のプロセスにて更新が終わり、COMMITした場合、もう片方のプロセスにて
> >更新時にデータが更新されているのを検出することは可能なのでしょうか?
> >
> >よろしくお願い致します。
> >
> >−−−−−−−−−−−−−−−−−−−
> >小林 克彦(TVH51179 @ biglobe.ne.jp> 
> ---
> Takeshi Miyakawa <tak @ hdt.co.jp>
> http://www2.hdt.co.jp/~tak/index.html
> 
> 




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