プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle HTTP Serverの管理
12c (12.2.1.2.0)
E82849-02
目次へ移動
目次

前
次

Oracle HTTP Serverのトラブルシューティング

この付録では、Oracle HTTP Server (OHS)の使用時に発生する可能性がある一般的な問題およびその解決方法について説明します。内容は次のとおりです。

ポートの競合によりOracle HTTP Serverが起動できない

ポートの競合によりOracle HTTP Serverが起動できない場合に、次のエラーが発生することがあります。

[VirtualHost: main] (98)Address already in use: make_sock: could not bind to address [::]:7777

解決方法

そのポートをすでに使用しているプロセスを判別し、Oracle HTTP ServerのIPポート・アドレスか、競合しているプロセスのポートを変更します。

注意:

OHSインスタンスが構成ウィザードで作成された場合、自動的なポート管理は行われません。同じリスニング・ポートを使用して複数のインスタンスを作成することが可能です。

多数のhttpdプロセスによるシステムのオーバーロード

1つのシステム上で実行中のhttpdプロセスが多すぎると、通常処理のためのリソースが不足し、レスポンス時間が低下します。

解決方法

マシンが対処できる値までMaxRequestWorkersの値を下げます。

1024未満のポートでOracle HTTP Serverの起動時に発生する権限拒否

1024未満のポートでOracle HTTP Serverを起動しようとすると、次のエラーが発生します。

[VirtualHost: main] (13)Permission denied: make_sock: could not bind to address [::]:443

1024未満のポートでは、Oracle HTTP Serverは起動しません。これは、これらのポートをバインドするには、root権限が必要になるためです。

解決方法

特権ポートでのOracle HTTP Serverインスタンスの起動(UNIXのみ)の手順に従って、特権ポートでOracle HTTP Serverを起動します。

ログ・ファイルを使用したエラーの特定

次のログ・ファイルを使用すると、エラーの特定に役立ちます。

リライト・ログ

このログ・ファイルは、mod_rewriteが使用されている場合のデバッグに必要です。このログ・ファイルでは、リライト・エンジンによるリクエストの変換方法の詳細分析が生成されます。LogLevelディレクティブの値は詳細レベルを制御します。

スクリプト・ログ

このログ・ファイルでは、CGIスクリプトからの入出力を記録できます。このファイルはテストにのみ使用し、本番サーバーには使用しないでください。

関連項目:

次のApache HTTP Serverドキュメントの「ScriptLog」

http://httpd.apache.org/docs/current/mod/mod_cgi.html#scriptlog

エラー・ログ

このログ・ファイルには、全体的なサーバー問題が記録されます。エラー・ログを構成および表示する方法の詳細は、Oracle HTTP Serverログの管理を参照してください。

リモート・ホストでのOHSインスタンスの回復

リモート・ホスト(管理サーバーを持たず、管理対象サーバーのみを持つホスト)にインストールされているOracle HTTP Serverインスタンスを回復する必要がある場合、このシナリオでは、pack.shunpack.shが動作しないので、taruntarを使用する必要があります。

Oracle HTTP Serverのパフォーマンスの問題

ネットワーク・ファイル・システムに置かれる特別なランタイム・ファイル

Oracle HTTP Serverは内部処理にロック(つまりロック・ファイル)を使用します。これらのファイルはロックが作成されると動的に作成され、ロックが取得または解放されるたびにアクセスされます。これらのファイルが低速なファイル・システム(たとえばネットワーク・ファイル・システム)に置かれると、サーバーのパフォーマンスが低下する場合があります。この問題を回避するには:

Linuxの場合:

httpd.confで、Mutex fnctl:fileloc defaultMutex sysvsem defaultに変更します。ここで、filelocはディレクティブLockFile (2箇所)の値です。

Solarisの場合:

httpd.confで、Mutex fnctl:fileloc defaultMutex pthread defaultに変更します。ここで、filelocはディレクティブLockFile (2箇所)の値です。

ネットワーク・ファイル・システムでのUNIXソケット

mod_cgidモジュールは、デフォルトでは有効になっていません。有効な場合、このモジュールはUNIXソケットを内部で使用します。UNIXソケットが低速なファイル・システム(たとえばネットワーク・ファイル・システム)に置かれると、大幅なパフォーマンスの低下が発生することがあります。次のディレクティブを設定して、この問題を回避できます。

  • mod_cgidが有効な場合は、ScriptSockディレクティブを使用してmod_cgidのUNIXソケットをローカル・ファイルシステムに配置します。

低速なファイル・システムに置かれたDocumentRoot

mod_wl_ohsを使用してリクエストをバックエンドのWLSサーバー/クラスタにルーティングし、DocumentRootが低速なファイル・システム(ネットワーク・ファイル・システムなど)に置かれている場合は、mod_wl_ohsによりバックエンドのサーバーにルーティングされるすべてのリクエストでパフォーマンスの問題が発生することがあります。これは、SetHandler weblogic-handlerではなく、WLSRequestONに設定することで解決できます。

DMSの共有メモリーの不足

一部の極端な構成では、OHSのエラー・ログに次のメッセージが表示されます。

dms_fail_shm_expansion: out of DMS shared memory in pid XXX, disabling DMS; increase DMSProcSharedMem directive from YYY

これは、OHS DMSに必要な共有メモリーの誤った計算によるものです。これは、DMSProcSharedMemをデフォルトの4096より大きい値に設定することで解決できます。問題が解決するまで継続してDMSProcSharedMemを50%ずつ高く設定します。DMSProcSharedMemの最小値は256バイトで、最大値は65536です。

数百から数千もの多くの仮想ホストを持つ構成で、前述の回避策で解決できない場合は、かわりに環境変数OHS_DMS_BLOCKSIZEをOracle HTTP Serverがエラーなく開始する十分大きな値に設定できます。この変数の値は数キロバイトであり、524288は開始値として適切です。エラーが繰り返される場合は、Oracle HTTP Serverがエラーなく開始するまで値を50%ずつ増加させてください。

共有ファイル・システム上で生成されたインスタンスのパフォーマンスの問題

NFS(ネットワーク・ファイル・システム)を含む共有ファイルシステム上でOracle HTTP Serverインスタンスを生成する際に、機能上や性能上の問題が生じた場合には、デフォルト構成のファイルシステム・アクセスに起因する可能性があります。この場合、オペレーティング・システムに固有のhttpd.confファイルを更新する必要があります。このファイルの更新の詳細は、共有ファイルシステムでのOracle HTTP Serverコンポーネント構成の更新を参照してください。

AIXでノード・マネージャ12c (12.1.2) OHSがJava例外をスローする

AIXでOracle HTTP Serverを実行している場合、ファイル・ハンドラのULIMIT値が小さいと、AIXでノード・マネージャのコンソール/ログから「java.io.IOException: error=24, Too many open files」エラーがスローされます。

回避策

この問題を解決するには、次の手順に従ってファイル・ハンドラのULIMIT値を大きくします。

  1. ルート・ユーザーとしてログインします。

  2. /etc/security/limitsファイルを開きます。

  3. このファイルを編集して、次の値を設定します。

    • nofiles=8192

    • nofiles_hard=65536

  4. マシンを再起動して、この変更を有効にします。

MD5アルゴリズムを使用して署名された証明書が原因でOracle HTTP Serverの起動に失敗する

Oracle HTTP Serverウォレットに、Message Digest 5 (MD5)アルゴリズムを使用して署名された証明書または証明書リクエストが含まれている場合は、Oracle HTTP Serverは起動に失敗します。

  • 解決方法: MD5証明書をSecure Hash Algorithm 2 (SHA-2)証明書と置き換えます。

  • 回避策: MD5がサポートされた証明書を有効にするには、ohs.plugins.nodemanager.propertiesファイル内のORACLE_SSL_ALLOW_MD5_CERT_SIGNATURES環境変数を1に設定します。

Oracle HTTP Serverで環境変数を設定するには、「環境変数の構成プロパティ」を参照してください。