|
PHPの持続的接続(Persistent Connection)を行うOCI関数OCI_PLogonを使っていると、
nativecode=ORA-03113: end-of-file on communication channel
|
というエラーが発生することがあります。
この原因はメッセージの通り、
Webサーバ(Apache)からデータベースサーバ(Oracle)に持続的な接続が作成された状態で、
データベースサーバのダウン(またはバックアップなどによる計画的な再起動)
が発生すると、接続が全て無効となり、データベースにアクセスできなくなるためです。
このエラーが発生した場合、
普通Webブラウザをリロードすると接続が再作成されてこのエラーが解消されますが、
それをエンドユーザに見せるのは好ましくありません。
そのため、対策として、
-
データベースサーバが再起動すると、Webサーバも忘れずに再起動するように運用スケジュールを立てる
-
DB接続をラップするルーチンを開発し、
このエラーで接続に失敗すると自動的に再接続を試すようにする
などの手が考えられます。
(first uploaded 2003/08/04 last updated 2003/08/04, URANO398)
|