[pgsql-jp: 35429] Re: pgpoolのデッドロック

杉 東 azuma_sugi @ pasco.co.jp
2005年 5月 27日 (金) 11:37:24 JST


杉です。

本当に何度もすいません。

> >  【JSP内で発行するクエリ】(AUTOCOMMITは'off'にしています。)
> >   SELECT * FROM T_ TEST_TBL WHERE DAT_ID=10001 FOR UPDATE
> >   commit
>
> autocommitという設定はないので,実際には
>
> BEGIN;
> SELECT * FROM T_ TEST_TBL WHERE DAT_ID=10001 FOR UPDATE;
> COMMIT;
>
> というコマンドをJSPの各スレッドが繰り返し発行しているということでいい
> でしょうか?説明が足りなくてすいません。
JSP内でコネクションを取得し、コネクションのメソッドで
AUTOCOMMITをオフにしています。
postgreSQLの出力するログを確認したところ、上記の様に処理されている
事を確認しました。


> > master側及びslave側でのロック状況も確認しましたが、繰り返している内に先
にslave側が
> > 先にロックをかけているようです。(クエリの前に/*シリアル番号*/を入れて確
認しました。)
>
> は,具体的にどうやって確認したのでしょうか?
master側及びslave側のログを確認し、それぞれが発行しているクエリ(selectの前に
コメントで番号を付加)
の順を確認しました。
例えば、両サーバとも1番〜92番まで順に処理されているのですが、master側は次
の93番を実行し、何故か
slave側は先に94番の処理を実行しています。
その状態で、master側及びslave側それぞれにpsqlで接続しロック状況の確認と各プ
ロセスの状況をチェックしました。

以上、お願いします。






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