mod_perl2 + Class::DBI

ムー うまくいかん。

prepared statement handle "dbdpg_13" already exists

このエラーがで続けるんですよねぇ。1回SQLでこけると、コネクションが開放されてない動きもあり。

http://mail-archives.apache.org/mod_mbox/perl-modperl/200608.mbox/%3Ce7f581b8ada938d52b0046954326261d@biglumber.com%3E


原因:
DBD::Pgに新しく、"server side prepares"というのが組み込まれて、デフォルトがONなのが原因

対策:

1. OFFにする。pg_server_prepare => 0

2. 修正する。

  • - /* Name is simply "dbdpg_#" */
  • - sprintf(imp_sth->prepare_name,"dbdpg_%d", imp_dbh->prepare_number);
  1. /* Name is simply "dbdpg_PID_#" */
  2. sprintf(imp_sth->prepare_name,"dbdpg_%d_%d", getpid(), imp_dbh->prepare_number);