[前][次][番号順一覧][スレッド一覧]

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です。


[前][次][番号順一覧][スレッド一覧]