« メモ&カレンダーWebアプリケーションつくりました。 | メイン | Parsing of undecoded UTF-8 will give garbage when decoding entities at ... »

mysql_auto_reconnect

FemoはFastCGIで動かしているのですが、FastCGIで最後に悩んだのは、しばらくアクセスがないと(開発中など)MySQLのコネクションが切れて、

Caught exception in engine "DBD::mysql::st execute failed: MySQL server has gone away

などとエラーがでてしまうところです。再接続してくれません。

いままで気にもしなかったのですが、普通のCGIやmod_perlで動かしている場合には、DBD::mysqlみるとmysql_auto_reconnectというフラグが自動的にOnになります。
FastCGI(Catalystの方?)では$ENV{GATEWAY_INTERFACE}も$ENV{MOD_PERL}もないので、どうもmysql_auto_reconnectを自分でOnにしないとだめなようです。

Class::DBIでは

__PACKAGE__->connection('DBI:mysql:*','*','*',{mysql_auto_reconnect=>1});

こんな形です。

Femoは想定外にアクセスをいただいてます。ありがとうございます。
少々緊張しております。