Oracle HTTP Server 管理者ガイド 10gリリース2(10.1.2) B15765-04 |
|
この付録では、Oracle HTTP Serverの使用時に発生する可能性がある一般的な問題およびその解決方法について説明します。
内容は、次のとおりです。
この項では、一般的な問題および解決策について説明します。内容は、次のとおりです。
Oracle HTTP ServerでKeepAlive
ディレクティブがOnに設定されていると、Microsoft Internet Explorerの特定のセキュリティ・パッチが、MOD_OC4J_0145
エラー、MOD_OC4J_0119
エラー、MOD_OC4J_0013
エラーなどの間欠的HTTP-500エラーの原因となります。
間欠的HTTP-500エラーの原因は、Microsoft Internet Explorerの不具合にあります。
この問題に対して考えられる解決策は、次の2つです。
KeepAlive
をOffに設定します。
この問題の詳細は、http://metalink.oracle.comでMetalink Note 269980.1を参照してください。このMetalink Noteにアクセスするには、OracleMetalinkサイトの上部にある「Advanced Search」ボタンをクリックして、Doc ID「269980.1」を検索するのが最も簡単な方法です。
特定のファイアウォールが間に使用されている場合、Oracle HTTP ServerはリクエストをOC4Jに転送できません。
Oracle HTTP Serverプロセスでは、OC4Jプロセスとの永続的な接続を維持します。Oracle HTTP Serverより前にファイアウォールによって接続がタイムアウトになると、ファイアウォールおよびオペレーティング・システムの構成方法に応じて、OC4Jプロセスに対するリクエストはエラーとなるか、処理の時間が非常に長くなります。
Oracle HTTP ServerのディレクティブOC4JConnTimeout
をファイアウォールのタイムアウト値(この値はファイアウォール固有です)より小さい値に設定します。
クライアントIPがOracleAS Web Cacheを介して渡されない場合、次のような問題が発生する可能性があります。
Access_log
に、クライアントIPアドレスではなく、OracleAS Web Cache IPアドレスが記録されます。
request.getRemoteAddr()
からOracleAS Web Cache IPアドレスが返されます。
通常、OracleAS Web Cacheが使用される場合、そのIPアドレスは、Oracle HTTP Serverによって参照されるアドレスです。UseWebCacheIp
構成オプション(デフォルトでは設定されていません)を使用して、Oracle HTTP ServerがクライアントのIPアドレスを取得できるように設定できます。
httpd.conf
ファイルでUseWebCacheIp On
を設定します。
証明書情報は、OracleAS Web Cacheが使用されているとき、OC4Jアプリケーションでは使用できません。
SSLがOracleAS Web Cacheで終了すると、デフォルトでは、Oracle HTTP ServerおよびOC4Jのアプリケーションに情報は渡されません。
Certheader機能を使用します。この機能により、OracleAS Web CacheからOracle HTTP ServerにSSL情報(構成情報など)を渡すことができます。
ポートの競合が原因でOracle HTTP Serverが起動できない場合、次のエラーが発生する可能性があります。
[crit] (98) Address already in use: make_sock: could not bind to port 7778
ポート番号が別のプロセスで使用されているため、Oracle HTTP Serverが起動できません。
Oracle HTTP Serverに割り当てられているアドレスをブラウザに指定して結果を確認し、どのプロセスでポートがすでに使用されているかを特定します。結果に応じて、Oracle HTTP Serverまたは競合するプロセスのIP:ポート・アドレスを変更します。
1台のマシン上で実行中のhttpdプロセスが多すぎると、レスポンス時間が急激に低下します。
httpdプロセスを起動しすぎると、通常処理のためのリソースが不足します。
マシンが対処できる値までMaxClients
の値を下げます。
1024未満のポートでOracle HTTP Serverを起動しようとすると、次のエラーが発生します。
Bind errors on ports below 1024: PERMISSION DENIED: MAKE_SOCK: COULD NOT BIND TO PORT 443
1024未満のポートでは、Oracle HTTP Serverは起動しません。これは、これらのポートをバインドするには、root権限が必要になるためです。また、.apachectl
を構成する手順も実行されていません。
次の手順を実行すると、1024未満のポートでroot
としてOracle HTTP Serverを実行できます。
root
としてログインします。
cd ORACLE_HOME/Apache/Apache/bin chown root .apachectl chmod 6750 .apachectl
Oracle HTTP Serverでは次のエラーが発生し、起動できないことがあります。
"[error] Can't locate mod_perl.pm in @INC (@INC contains:$ORACLE_HOME/perl/...)
または
[error] Can't locate Apache::Registry.pm in @INC (@INC contains: $ORACLE_HOME/per/...)
mod_perl
は、ORACLE_HOME
/Apache/Apache/mod_perl
ディレクトリの下に保存されるPMファイルを検出する必要があります。これらのPMファイルがないと、mod_perl
は起動しません。
UNIXの場合、apachectl
が変数PERL5LIB
に正しく定義されているかどうかをチェックします。ORACLE_HOME
/Apache/Apache/mod_perl/lib/site_perl/5.6.1/sun4-solaris
を指している必要があります。
Windowsの場合、opmn.xml
のHTTP Serverセクションの環境サブ・セクションにPERL5LIB
の正しいエントリがあるかどうかをチェックします。ORACLE_HOME
¥Apache¥Apache¥mod_perl¥lib¥site_perl¥5.6.1¥lib
を指している必要があります。
SSOクライアント認証がWebcacheリバース・プロキシで失敗します。
SSOクライアントのログイン時には、ブラウザからのクライアント証明書がSSOサーバーで認証された後、そのサーバーへの接続に成功します。ただし、ssoServer.log
に示されているように、ブラウザではなくWebcacheのWalletに格納されている証明書を認証しようとしているため、接続に失敗します。
次の手順を実行します。
$ORACLE_HOME/Apache/Apache/conf/httpd.conf
を編集し、次の行を含めるようにします。
LoadModule certheaders_module libexec/mod_certheaders.so AddCertHeader HTTPS AddCertHeader SSL_CLIENT_CERT
$ORACLE_HOME/sso/conf/sso_apache.conf
を編集し、次の行をコメント化します。
#SSLOptions +ExportCertData +StdEnvVars
dcmctl updateconfig -ct ohs
を実行します。
opmnctl restartproc type=ohs
を実行します。
OracleMetaLink(http://metalink.oracle.com)には、さらに多くの解決策が掲載されています。問題の解決策が見つからない場合は、サービス・リクエストを作成してください。
|
![]() Copyright © 2002, 2006 Oracle. All Rights Reserved. |
|