[PHP-users 15145]Re: Oracle検索実行のタイムアウト設定方法について

Shindo shindo @ atsystem.jp
2003年 5月 9日 (金) 10:13:44 JST


進藤です。はじめまして。

Windows上のApache+PHP+Oracle の組み合わせは全く知りませんので
推測だけですが
処理のシーケンスを推測すると
  1) ブラウザからのリクエストでApacheがPHPのスクリプトを起動
  2) PHPスクリプトタスク(PHP本体のタスクではなくて)が
     OracleのSQLタスクを起動
  3) PHPスクリプトタスクがタイムアウトで終了
  4) OracleのSQLタスクが結果の戻し先がなくて待ち状態でスリープ
ではないかと考えます。

だとすれば、
1) [PHP-users 15117]の中村さんのご指摘のようにPHPスクリプトタスクが
   タイムアウトしないように
   max_execution_time の設定を30分程度( 1800) にする。
2) [PHP-users 15117]の中村さんのご指摘のように10分もかかるSQLを見直す。
3) Oracleを戻し先がない場合は、タスク終了させるOracleの設定を調べる。

辺りを、私なら実行すると思います。
それから、スレッドはあえてここに繋げました。
youさんの[PHP-users 15143]のような投稿はスレッドが切れてしまって
MLでは嫌われます。ご注意ください。

[PHP-users 15143]
>> php.iniの内容がわかりませんが
>> PHPのmax_execution_timeの値を適正に処理してみてはどうでしょうか?

>max_execution_timeの値は特に変更しておらず30秒(デフォルト?)と
>なっています。
>この秒数が有効になっていないのでしょうか?30秒後にはプロセスが
>自動終了するように思っているのですがSQL実行中では無効になっている
>ように思います。
〜〜以下略〜〜

[PHP-users 15115]
>はじめまして、youと申します。
>
>次のような環境を構築しています。
>・WindowsNT4.0(SP6a)
>・Apache 1.3.20
>・PHP 3.0.18-i18n-ja
>・Oracle R8.0.6
>
>OracleのSQL*Plusで検索しても約10分くらいかかるSQLがあります。
>そこでPHPを使用して同様のSQL検索処理を実行すると約10分くらいで
>タイムアウトして検索結果が表示されません。タイムアウトしているため
>サーバ内の処理も終了していると思ったのですがタスクマネージャの
>プロセスにはPHPのEXEが残っていました。
>タイムアウト以外にもブラウザの中止、×ボタンによる強制終了でも
>同様にプロセスは終了していませんでした。
>この状態で再度、何度も検索処理を実行するとメモリ不足になりスワップ
>が発生します。その結果、ワトソン博士のメッセージがいくつも表示され、
>サーバがフリーズ状態になってしまいます。
〜〜以下略〜〜

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/
_/  進藤寿則@アットシステム
_/  shindo@ atsystem.jp  Tel 022-385-1593  Fax 022-385-1595
_/



PHP-users メーリングリストの案内