プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Access Management管理者ガイド
11g リリース2 (11.1.2.3) for All Platforms
E61950-08
目次へ移動
目次

前
次

E.38 Webサーバーの問題

E.38.1 Apache Webサーバー上のサーバー障害

症状

Apache Webサーバーを実行中に、OAMサーバーが次のメッセージを表示して失敗します。

libthread panic: cannot create new lwp
(PID: 9035 LWP 2). stackrace:
ff3424cc
0

この症状は、Apache Webサーバーが多くの自分自身のインスタンスを起動することにより発生することがあります。1つまたは複数のWebgateおよびOAMサーバー間の接続数をサービスするにはもっと多くのインスタンスが必要だとサーバーが判断したときに、これが発生することがあります。

追加のインスタンスはさらに多くの接続を作成し、OAMサーバーによる接続数を超過します。

解決策

MinSpareServersMaxSpareServersStartServersおよびMaxClientsパラメータの数を減らします。

OAMサーバーの構成ディレクトリに移動し、http.d構成ファイルを開きます。

推奨するパラメータ設定は次のとおりです。

  • MinSpareServers 1

  • MaxSpareServers 5

  • StartServers 3

  • MaxClients 5

E.38.2 HP-UX上のApache v2

HP-UX上でApache v2を実行している場合、共有メモリーが動作できないため、「ユーザー」または「グループ」にnobodyは使用できません。そのかわりに、「ユーザー名」にログイン名を、HP-UX上の「グループ名」に使用しているグループを使用します(Solarisでは"www"は"nobody"と同等です)。

HPUX 11.11上でApache v2を実行している場合、Apache httpd.confファイルのAcceptMutexディレクティブがfcntlに設定されていることを確認します。ディレクティブが存在しない場合、httpd.confファイルに追加します(AcceptMutex fcntl)。詳細は、次を参照してください。

http://issues.apache.org/bugzilla/show_bug.cgi?id=22484

E.38.3 Red Hat Enterprise Linux 4にバンドルされたApache v2

問題

ベンダー・バンドルApacheにWebgateをインストールした後、Webサーバーの開始時に次のエラーが発生することがあります。

Error: Cannot load libgcc_s.so.1 library - Permission denied. 

解決策

Access Manager Webゲートのセキュリティ強化Linux (SELinux)のポリシー・ルールを変更します。

E.38.4 セキュリティ強化LinuxにバンドルされたApache v2

Access Manager Webコンポーネントのインストール後、より厳密なSELinuxポリシーが存在するLinux配布上のWebサーバーを開始するときに、エラーがWebServerのログ/コンソールに記録されることがあります。Webサーバーを再起動する前に、インストールされたWebコンポーネント用の適切なchconコマンドを実行することにより、これらのエラーを防止できます。

E.38.5 Webgateのmpm_worker_moduleを使用したUNIX上のApache v2

次の項目は、UNIX上でWebgate用のApache v2をmpm_worker_moduleを使用してコンパイルする場合にのみ必要です。この場合、UNIX環境用にApacheソースからthread.cファイルを変更する必要があります。この変更を行うことで、Webgateのデフォルトのpthreadスタック・サイズによりマルチスレッド・サーバーの実装中に最適なパフォーマンスが得られるようになります。この変更が行われないと、デフォルトのpthreadスタック・サイズはWebgateに対して十分ではなく、クラッシュしてしまうことがあります。

Apache 2.0はThreadStackSizeオプションをサポートしません。そのため、

  • UNIXベースのApache v2.1およびそれ以降では、クライアント接続を処理し、それらの接続の処理を手助けするモジュールを呼び出すスレッドのスタック・サイズ(autodata用)を、ThreadStackSizeディレクティブを使用して設定する必要があります。

  • UNIXベースのApache 2では、mpm_worker_moduleの追加およびthread.cファイルの変更の間に互換ソースを使用してスタック・オーバーフローを防止することが最適です。

次の手順は、Apache v2.0のthread.cファイルを変更して、マルチスレッド・サーバーの実装中に最適なパフォーマンスを得るためにWebgateに必要なデフォルトのpthreadスタックサイズを指定する方法を示します。Apache v2.1とThreadStackSizeディレクティブの詳細は、http://httpd.apache.org/docs/2.2/mod/mpm_common.html#threadstacksizeを参照してください。

ノート:

次の手順はApache 2.0 Webgateでのみ実行してください。それ以外の場合、デフォルトのpthreadスタック・サイズではWebgateに対して十分ではなく、クラッシュしてしまうことがあります。

UNIX環境でWebgate用のApache v2.0 thread.cファイルを変更する手順

  1. thread.cファイルを探します。次に例を示します。

    APACHE 2.0.52 source/srclib/apr/threadproc/unix/thread.c
    
  2. 次のコード・セグメントでapr_threadattr_createという名前の関数(apr_threadattr_t **new、apr_pool_t *pool)を探します。

    **new,apr_pool_t *pool) in the following code segment:
    1-----> apr_status_t stat; 
    2 
    3-----> (*new) = (apr_threadattr_t *)apr_pcalloc(pool, sizeof(apr_threadattr_t)); 
    4-----> (*new)->attr = (pthread_attr_t *)apr_pcalloc(pool, sizeof(pthread_attr_t)); 
    5 
    6-----> if ((*new) == NULL || (*new)->attr == NULL) { 
    7----->              return APR_ENOMEM; 
    8-----> } 
    9 
    10----->(*new)->pool = pool; 
    11----->stat = pthread_attr_init((*new)->attr); 
    12 
    13-----> if (stat == 0) { 
    14----->            return APR_SUCCESS; 
    15-----> } 
    16----->#ifdef PTHREAD_SETS_ERRNO 
    17----->stat = errno; 
    18----->#endif 
    19 
    20----->return stat; 
    21 
    
  3. 次のコードを13行目よりも前に追加します。

    int stacksize = 1 << 20; 
    pthread_attr_setstacksize(&(*new)->attr, stacksize);
    
  4. configure、make、make installを実行して、mpm_worker_moduleを使用するApache Webサーバーを設定します。

E.38.6 Domino Webサーバーの問題

認証イベントの失敗: Domino Webサーバーの場合、Access Managerを介したURLのりダイレクトは、認証タイプがBasic Over LDAPに設定され、リダイレクトされるURLが次のいずれかで示されていると、動作しないことがあります。

  • 同じWebサーバー上に存在する相対パス
  • または、ホスト識別子文字列の組合せで定義されたコンピュータ名を含む、同じWebサーバー上のフルパス

認証の失敗イベントを解決するには、ホスト識別子グループの下で定義されていないコンピュータ名を使用してリダイレクトされるURLを設定する必要があります。たとえば、コンピュータのIPアドレスです。

この問題はフォームベースの認証タイプでは発生しません。

ヘッダー変数: クライアント証明書認証スキームを使用しているときに、REMOTE_USER以外のヘッダー変数を、Lotus Notes Domino WebサーバーにインストールされたWebgateに渡すことができない場合があります。

たとえば、ヘッダー変数はクライアント証明書認証を発生させるリクエストには設定できません。しかし、その他のすべてのリクエストにはヘッダー変数を設定できます。

詳細は、「10g WebGates向けのLotus Domino Webサーバーの構成」を参照してください。

E.38.7 エラー、アクセスの消失および予期しない動作

症状

Webサーバー・インスタンスの作成に使用したものと違うユーザーIDを使用してUNIXにAccess Managerをインストールすると、Access Managerが不安定になることがあります。次のような動作が発生する可能性があります。

  • ランダムなバグ・レポート・ページ

  • ログ・ファイルへの書込み失敗エラー

  • Webページへのアクセスの消失

解決策

chownコマンドを使用してファイルの権限を変更します。Access Managerディレクトリを、Webサーバー・インスタンスを作成するのに使用したのと同じユーザーIDに変更します。

E.38.8 ISA Webサーバーの既知の問題

WebgateはISAPIの拡張を使用してユーザー拒否エラー・メッセージおよび診断ページを表示します。しかし、ISA 2006は拡張をサポートしていません。そのため、

  • ユーザーがWebgateによりアクセス拒否される場合、ユーザーはAccess Managerのアクセス拒否エラー・メッセージではなく、ページが表示されないエラー・メッセージを受け取ります。

  • 診断URL、http(s)://hostname:port/access/oblix/apps/webgate/bin/webgate.dll?progid=1は、ISAに対しては動作しません。

E.38.9 LinuxThreadsでOracle HTTP Serverが開始しない

問題

Oracle HTTP ServerにWebgateインスタンスをインストールすると、サーバーが起動しません。

ノート:

Access Managerの実行時は、デフォルトではLinuxThreadsが使用されます。これは環境変数LD_ASSUME_KERNELが2.4.19に設定されていることが必要です。NPTLをAccess Managerとともに使用している場合、LD_ASSUME_KERNELは2.4.19.9に設定しません。

原因

これは、Access Managerで古いLinuxスレッド・モデルを使用しているために発生します。

解決策

LinuxThreadsモードを使用している場合、次の手順の説明に従い、httpd.confファイルのPerlモジュールをコメント・アウトし、LD_ASSUME_KERNEL環境変数を更新して再起動します。

LinuxThreadsモードでOracle HTTP Serverの開始の失敗を解決する手順

  1. 次の場所にあるhttpd.confファイルのPerlモジュールをコメントアウトします。

    Oracle HTTP Server 11g: $ORACLE_INSTANCE/config/OHS/ohs_name/httpd.conf

    Oracle HTTP Server v2: OH$/ohs/conf/httpd.conf

    Oracle HTTP Server v1.3: OH$/Apache/Apache/conf/httpd.conf

  2. LD_ASSUME_KERNELの値を更新するには、テキスト・エディタで次のファイルを開きます。

    OH$/opmn/conf/opm.xml
    
  3. 次の行を探します。

    <process-type id="HTTP_Server" module-id="OHS">
  4. 
    

    前のステップで見つけた行の下に次の情報を追加します。

    <environment>
    <variable id="LD_ASSUME_KERNEL" value="2.4.19" />
    </environment>
    
  5. このファイルを保存します。

  6. 次のコマンドを実行して変更を実装します。

    opmnctl stopall
    opmnctl startall

E.38.10 Linux Red Hat 4上でOracle HTTP Server Webゲートが初期化されない

この状況はAccess ManagerをLinuxThreadsまたはNPTLのどちらとともに使用していても発生する可能性があります。

症状

Red Hat Enterprise Serverバージョン4.0が2.6.9-34.ELよりも低いカーネル・バージョンで実行しているOracle HTTP Serverにインストールされた場合に、Webゲートは初期化に失敗します。バージョン2.6.9-34.ELはRed Hatバージョン4、アップデート3とともに提供されます。

解決策

この問題を防ぐには、Red Hatバージョン4、アップデート3またはそれ以上にアップグレードする必要があります。

E.38.11 Oracle HTTP Server Web Server構成ファイルの問題

問題

Oracle Application Server 10.1.x、OC4Jでは、Webgateのインストール中にhttpd.confファイルが自動的に修正されるときに、破損する可能性があります。

解決策

Webgateのインストール前に、次のコマンドを実行して、httpd.confファイルが上書きされることを防ぎます。

$ORACLE_HOME/dcm/bin/dcmctl updateConfig -ct ohs 

E.38.12 IIS v6 Webサーバーの問題

IIS 6 Webサーバーでのみ、WWWサービスをIIS 5.0分離モードで実行する必要があり、これはISAPI postgateフィルタの要件です。この例は、32ビットWindowsオペレーティング・システムで実行している32ビットのAccess Managerバイナリがある場合に動作します。しかし、IISが32ビット・モードで実行している64ビットWindowsマシンで32ビットpostgate.dllを実行しようとすると問題が発生します。

問題

IISがIIS5.0分離モードで実行している場合、次のメッセージが表示されます。

ISAPIフィルタ'C:\webgate\access\oblix\apps\webgate\bin\webgate.dll'は構成の問題が原因でロードできませんでした。

原因

現在の構成はAMD 64ビット・プロセッサ・アーキテクチャ用に作成されたイメージのロードのみをサポートします。データ・フィールドにはエラー番号が含まれます。

解決策

この問題の詳細は、この種類のプロセッサ・アーキテクチャの不一致のエラーのトラブルシューティング方法も含め、次のWebサイトを参照してください。

http://go.microsoft.com/fwlink/?LinkId=29349

詳細は、次のヘルプとサポート・センターを参照してください。

http://go.microsoft.com/fwlink/events.asp

問題

IIS5は64ビットとして存在することはありません。しかし、64ビットWindowsコンピュータ上でのIIS v6のIIS5互換モードだけは64ビットとして実行します。

原因

次のURLで参照できるドキュメントで説明されているとおり、64ビットWindowsでIIS5分離モード32ビットを実行することはアーキテクチャ上不可能です。

http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.pu
blic.inetserver.iis&tid=5dd07102-8896-40cc-86cb-809060fa9426&cat=en_US_
02ceb021-bb43-476d-8f8f-6c00a363ccf5&lang=en&cr=US&p=1
http://blogs.msdn.com/david.wang/archive/2005/12/14/HOWTO-Diagnose-one-cause-of-W3
SVC-failing-to-start-with-Win32-Error-193-on-64bit-Windows.aspx

E.38.13 Sun Webサーバーの開始時のPCLOSEエラー

症状

Sun Webサーバーを開始しようとしたときに、次のようなエラーが発生します。

Unable to start, PCLOSE

解決策

解決策: たくさんの問題がこのエラーを引き起こす可能性があります。

  • obj.confファイルの構文エラー

  • obj.confファイルの先頭のスペース

  • Webサーバー・インスタンスの作成に使用したのとは異なるユーザーIDでのAccess Managerのインストール

  • obj.confファイルの最後にある改行

E.38.14 IIS DLLの削除および再インストール

Access ManagerがMicrosoftのIIS Webサーバーで実行している場合、Access Managerを再インストールするときには次のISAPIフィルタを手動でアンインストールおよび再インストールする必要があります。

  • tranfilter.dll

  • oblixlock.dll (Webgateがインストール済の場合)

  • webgate.dll (Webgateがインストール済の場合)

IIS DLLを削除および再インストールする手順

  1. Access Managerをアンインストールします。

  2. 前述のDLLを手動でアンインストールします。

  3. Access Manager.Active Directoryを再インストールします。

  4. DLLを手動で再インストールします。

ノート:

これらのフィルタは使用しているIISのバージョンにより異なる可能性があります。これらのフィルタが存在しないまたは別のものが存在する場合、存在するフィルタを削除する必要があるかどうかはOracleにお問い合せください。