mysql:3271
From: "岩田 雅人" <"岩田 雅人" <iwata@xxxxxxxxxx>>
Date: Fri, 16 Feb 2001 09:52:53 +0900
Subject: [mysql 03271] コネクション
岩田です、初心者ですので宜しくお願い致します! データベースから読み込んだ値をブラウザで表示しているのですが プログラムでは… : $dbh = DBI->connect('DBI:mysql:database1','admin','admin') or die "Could'nt connect to database: " . DBI->errstr; $sth = $dbh->prepare('select * from db1') or die "Could'nt prepare statement: " . $dbh->errstr; $sth->execute; $db1_data = $sth->fetchrow(); $sth->finish; if(エラーの場合) { エラー表示処理関数Error_html() } : html表示処理 : $dbh->disconnect; エラー表示処理関数 Error_html { : html表示処理 : } とほとんどのPGはこのような処理をしています。しかし、条件式でhtml表示を分 けて処理する場合、最後にdisconnectせずに処理を終わっています。しかし通っ てしまい、エラー表示されます。 一応通ってしまうのでこのままでいたのですが、disconnectしていないため このコネクションのプロセスがいつまでも残ってしまうため、エラーを起こして しまいます。しかもDBへアクセスする処理をしているプログラムは全てエラー になってしまいました。エラー症状を発生させることができないためエラー内容 がコネクションのプロセスが原因なのかわかりません。 サーバーをrebootしたところ残っていたコネクションは消えて正常に戻りまし た。 今は、エラー処理の場合もdisconnectして終了するようにし、コネクションは 残らなくなったのですが。まれにコネクションのプロセスが残ってしまいます。 この先もし、コネクションのプロセスが残って同じよう なことがあった場合、対処法としてrebootしか方法はないのでしょうか? サーバーはLinux、使ってるCGI言語はperl 5.005です。