mysql:6138
From: <ml_mysql@xxxxxxxxxx>
Date: Fri, 13 Sep 2002 17:30:29 +0900
Subject: [mysql 06138] Re: CGI::SpeedyCGI と Mysql との組み合わせ
山下様 早速のRES ありがとうございます。 At 16:30 02/09/13 +0900, you wrote: >お世話になっております。 > >> #!/usr/bin/perl ---> #!/usr/bin/speedy -- -M100 -t600 -r500 >> に変更し、 >> スクリプトの最初に >> use CGI::SpeedyCGI; >> my $sp = CGI::SpeedyCGI->new; >> undef ($hogehoge); >データベース入出力関連の処理には手を加えていないようですので >Speedyネイティブな問題かもしれません。 > >> 実際に稼動させた所、以下のエラーがApache のエラーログに >> 記録されています。 >> Issuing rollback() for database handle being DESTROY'd without explicit >> disconnect() at /var/www/hogehoge.pl line 758. >Apacheでこのようなエラーが発生したとき、 >データベース、テーブル、カラムは何らかの損傷を受けましたか? 損傷は受けてないようです。 >または、 >追加したはずのレコードが存在しなかったり、 >更新したはずのレコードが変更されてなかったり、 >削除したはずのレコードが残っていたりしましたか? >確認してみてください。 このスクリプトはフォーム --> 起動 -->DBの検索(ユーザー認証) --> DBの検索(データー) --> 検索結果をブラウザーに表示 --> DBへデーターの追加 という動きを行います。 エラーは、最初のDBの検索部分で発生しています。 検索結果をブラウザーに表示 が正常にされたのか、 DBへデーターの追加 自体が行われたかは不明です。 エラーが発生した時点は、不特定の方がフォームに記載し、送信ボタンを押した (約1日当たり1万回送信ボタンを押された、このうち、20回、エラーが記録された) エラーが出たときのデーターがきちんと記録されたかどうかは、 調べていません、というよりも、データーが多すぎて簡単には調べようが無い というところです。 > >> 頻度は 約10000回動いて20回ほどエラーが記録されています。 >> デバッグの進め方を教えていただければ、 >CGIを10000回実行したうち20回エラーが発生したのか、 >10000回ループさせたうち20回エラーが発生したのか、 >100回回るループを2重にネストさせ合計10000回処理を >実行させた時に20回エラーが発生したのか、 >もしくはそれ以外のケースなのかが良く分かりません。 CGI を10000回実行させた時に20回エラーが記録されます。 >それから、Speedyからperlに戻して同様に10000回動かして >エラーが発生するかどうか確かめた方がいいと思います。 >本当にSpeedyのせいでエラーが発生しているのか、 >他の原因でエラーが発生しているのかが分かるからです。 > はい、怖くて、現在は戻しています。 戻し方は、 #!/usr/bin/speedy -- -M100 -t600 -r500 ---> #!/usr/bin/perl に戻し、 # use CGI::SpeedyCGI; # my $sp = CGI::SpeedyCGI->new; をコメントアウトし、 undef ($hogehoge); の初期化はそのままにしています。 この状態に戻して1日たちますが、エラーは記録されていません。 >> CGI::SpeedyCGI を使った場合のMysql で >> 一般的な注意点はあるのでしょうか? >具体的なケースにおける注意点についてはレスが付くと思います。 >一般的な注意点については書籍やWebサイトが紹介される >と思います。 > >> また、せっかくCGI::SpeedyCGIを使っていますので、 >> データーベースのconnect を毎回しないでよい方法は? >石川様がお考えになっている「毎回」がどのような「毎回」で >あるかがはっきりすれば、レスが付くと思います。 ># 例えば、「セッション毎」とか「ページ毎」など。 > 同一スクリプトが1日に1万回程度立ち上がり、 時間帯により集中しますので、 一度スクリプトが立ち上がったときにDBにコネクトを行い、 後は-t600 あるいは -r500 で一旦終了するまでは connect しっぱなしにしておけば、スクリプトが稼動するたびに connect という重たい部分を走らなくてすみそうな気がしますが。 よろしくお願いします。
6136 2002-09-13 15:24 [<ml_mysql@xxxxxxxxxx] CGI::SpeedyCGI と Mysql との組み合わせ 6137 2002-09-13 16:30 ┗["Takashi Yamashita" ] -> 6138 2002-09-13 17:30 ┗[<ml_mysql@xxxxxxxxxx] 6139 2002-09-13 18:00 ┗["Takashi Yamashita" ] 6143 2002-09-14 09:33 ┗["KAWAI,Takanori" <GC]