[pgcluster: 716] Re: pgreplicateが固まります

Seiryu Fumio BX7S-SIRY @ asahi-net.or.jp
2005年 3月 10日 (木) 13:47:28 JST


こんにちは、清流です。

> ログを見ると,SELECT FOR UPDATEの後,ENDが抜けている箇所があるようですね.
> でロックがかかってしまっているのだと思います.

下記のようなperlで自動的に作ったSQL文ですので、その可能性は低そうです。
実際に使用したSQL文を確認してみましたが、抜けている箇所はありませんでした。

また連続で begin; を実行してみましたが、
以下のエラーが表示されるだけで固まると言うことはありませんでした。
WARNING:  BEGIN: already a transaction in progress

あれからさらにいろいろテストしたのですが、
どうやらdb-cl2単体から begin; と end; を連続して実行するだけで、
すぐにエラーが出て固まるようです。

設定が間違っているのかと思い、設定ファイルを見直したり、
pgreplicate.conf.sample から再度作り直したりしたのですが、解決しませんでした。
あとどこかチェックすべき箇所はありますでしょうか?

それでは、よろしくお願いします。

--------------------------perlプログラム--------------------------
#!/usr/bin/perl

for( my $i = 0; $i < 10000; $i++ ){
  print "begin;\n";
  print "SELECT * FROM session_id WHERE id = 'a-$i' for update;\n";
  print "UPDATE session_id SET name = 'tran' WHERE id = 'a-$i';\n";
  print "end;\n";
}
--------------------------perlプログラム--------------------------

----
Seiryu Fumio <BX7S-SIRY @ asahi-net.or.jp>



pgcluster メーリングリストの案内