PHP が Oracle データベースに接続するときに、クエリされるデータの量が比較的多い場合、またはクエリ時間が比較的長い場合、接続がタイムアウトになる可能性が非常に高くなります。この状況の発生を回避するには、PHP が Oracle データベースに接続するためのタイムアウト時間を設定する必要があります。
次に、PHP が Oracle データベースに接続するためのタイムアウトを設定する方法について説明します。
Oracle データベースのデフォルトのセッション タイムアウトは 15 分で、この期間中に操作が実行されない場合、Oracle は自動的に切断します。セッション タイムアウトを短く設定する必要がある場合は、次の SQL ステートメントを使用できます。
ALTER PROFILE default LIMIT idle_time 10;
上記のコマンドは、セッション タイムアウトを 10 分に設定します。このコマンドは 1 回だけ実行する必要があり、その後はすべての接続でこのセッション タイムアウトが使用されます。
PHP 構成ファイル php.ini を見つけて、次の構成項目を見つけて、PHP の接続タイムアウトを設定します。 Oracle データベースへ:
; Default timeout for socket based streams (seconds) default_socket_timeout = 600
上記のコマンドは、接続タイムアウトを 600 秒 (10 分) に設定します。接続タイムアウトを短く設定する必要がある場合は、対応する値に変更できます。この設定は、PHP を使用して Oracle データベースに接続するすべてのスクリプトに影響することに注意してください。
PDO を使用して Oracle データベースに接続している場合は、次のコードを使用して接続タイムアウトを設定できます。
$pdo = new PDO('oci:dbname=//localhost:1521/orcl', $username, $password, array( PDO::ATTR_TIMEOUT => 10));上記のコマンドは、接続タイムアウトを 10 秒に設定します。タイムアウトが必要ない場合は、このオプションを 0 に設定できます。 概要Oracle データベースへの PHP 接続のタイムアウト期間を設定することは、大量のデータをクエリする場合やクエリ時間が長い場合に接続タイムアウトを回避できる非常に実用的な手法です。上記の 3 つの方法により、ニーズに合わせて接続タイムアウトを簡単に設定できます。
以上がPHP が Oracle データベースに接続するためのタイムアウトを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。