[pgpool-general-jp: 885] Re: プリペアードステートメント

Toshihiro Kitagawa kitagawa @ sraoss.co.jp
2011年 1月 18日 (火) 18:55:46 JST


北川です。

ちょうど今、これらの問題の原因となっているところを直しています。
近日中に修正したバージョンをリリースする予定ですので、
もう暫くお待ちいただければと思います。

とりあえずの回避策として PREPARED に /*REPLICATION*/ を付ける
というのは一理あります。

-- 
SRA OSS, Inc. 日本支社
北川 俊広 <kitagawa @ sraoss.co.jp>

On Tue, 18 Jan 2011 18:38:41 +0900
"N.Ezawa" <ezawa @ birds.co.jp> wrote:

> こんにちは。江沢と申します。
> 
> 環境は、少し違いますが同じ問題に直面しました。
> ※環境:pgpool3.0.1 + PostgreSQL8.4×2台(レプリケーションモード)
> 
> トランザクション内の場合、PREPAREDは、どちらかのNodeで実行されますが、
> EXECUTEが、両方のNodeで実行されるのが原因のようです。
> 
> 当然、PREPAREDが実行されなかったNodeでは、EXECUTEが失敗します。
> その時のログが、
> > ERROR:  prepared statement "pdo_pgsql_stmt_7a5cc888" does not exist
> と同様の内容でした。
> おそらく、「DB node id: 0 backend pid:  statement: EXECUTE ・・・」
> のようなログが、Node単位にログに出ていると思います。
> 
> その時は、急いでいたので、PREPAREDに /*REPLICATION*/ を付けて
> 逃げてしまいました。
> 
> 見当違いかもしれませんが・・・。
> 
> 
> (2011/01/18 17:25), takayuki nakamoto wrote:
> > お世話になっております。
> > 仲本と申します。
> > 
> > PDO経由でプリペアードステートメントを利用しているのですが、うまくいって
> > いません。
> > SQLの実行後、DEALLOCATE ALLを実行すると問題ないようです・・・。
> > 
> > 
> > ちなみに、マスタ・スレーブ共以下のようなpostgresのログが残っています。
> > ERROR:  prepared statement "pdo_pgsql_stmt_7a5cc888" does not exist
> > STATEMENT:  DEALLOCATE pdo_pgsql_stmt_7a5cc888
> > 
> > 情報として、不足しているかもしれませんが、なにかご教示いただければと思い
> > ます。
> > 
> > 環境は、pgpool3.0.1+DB(postgres9.0x2台)でマスター/スレーブ構成としていま
> > す。レプリケーションは、Streaming Replicationです。
> > 
> > 以上、よろしくお願いします。
> > 
> > 
> > taka_na @ ja2.so-net.ne.jp
> > _______________________________________________
> > pgpool-general-jp mailing list
> > pgpool-general-jp @ sraoss.jp
> > http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
> > 
> 
> -- 
> Nobutaka Ezawa
> mailto:ezawa @ birds.co.jp
> _______________________________________________
> pgpool-general-jp mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
> 



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