す。
8.5.3 Oracle Portal の実行時に発生する問題 の実行時に発生する問題 の実行時に発生する問題 の実行時に発生する問題
Oracle Portalのトラブルシューティング
Oracle Portalのトラブルシューティング
問題 問題 問題
問題 : 適切な位置に描画されている 適切な位置に描画されている 適切な位置に描画されている 適切な位置に描画されている URL アイテム・リンクをクリックする アイテム・リンクをクリックする アイテム・リンクをクリックする アイテム・リンクをクリックする ときに、エラー「
ときに、エラー「 ときに、エラー「
ときに、エラー「utl_http のコールに失敗しました」が表示されます。 のコールに失敗しました」が表示されます。 のコールに失敗しました」が表示されます。 のコールに失敗しました」が表示されます。
問題 問題 問題
問題 : 1 つまたは複数のポートレットでときどきエラー「 つまたは複数のポートレットでときどきエラー「 つまたは複数のポートレットでときどきエラー「 つまたは複数のポートレットでときどきエラー「Timeout for content={0}」が表示されます。 」が表示されます。 」が表示されます。 」が表示されます。
原因 原因原因
原因 ファイアウォール内で実行している場合は、不正なプロキシ値が 指定されている可能性があります。
解決方法解決方法解決方法
解決方法 Oracle Portalの「グローバル設定」ページでプロキシが正しく設
定されていることを確認します。このページには、「管理」タブの
「サービス」ポートレットからアクセスできます。Portalホーム・
ページの「管理」タブをクリックします。「プロキシ・サーバー」
セクションで、「HTTPサーバー」、「HTTPサーバー・ポート」、
「この文字で始まるドメインにプロキシ・サーバーを使用しない」
の各フィールドに適切な値を入力します。
6.5.1項「手順1: グローバル・ページの設定」を参照してくださ
い。
原因原因原因
原因 ポートレットが応答する前に、パラレル・ページ・エンジンがタ イムアウトになっています。{0}は、実際にはOracle Portalの初 期のバージョンで修正されずに残っているバグです。Oracle
Portalの新しいバージョンでこのエラーが発生した場合は、超過
したタイムアウト値が表示されます。
解決方法 解決方法解決方法
解決方法 使用しているリスナーのzone.propertiesファイルで、次の値 を設定して、デフォルトのタイムアウト周期を変更します。この 値には、ポートレットが応答できるだけの十分な時間を設定する 必要があります。
servlet.page.initArgs=requesttime=40
必要に応じて、値「40」を高い数値にも低い数値にも置き換えら れます。
データベースの個々のポートレットに対して、ポートレット・レ コードのタイムアウトを設定することもできます。Webポート レットでは、provider.xmlのタイムアウトを増加します。
Oracle Portalのトラブルシューティング
問題 問題 問題
問題 : Oracle Portal の実行時に、エラー「 の実行時に、エラー「 の実行時に、エラー「 の実行時に、エラー「The listener returned the following message: 503 Service Temporarily Unavailable 」が断続的に表 」が断続的に表 」が断続的に表 」が断続的に表 示されます。
示されます。 示されます。
示されます。
原因 原因原因
原因 この問題は、データベース・セッションが最大数に到達したため
に、mod_plsqlがデータベースに接続できない場合に発生します。
mod_plsqlのデータベース接続プールは、Apacheプロセス間で共
有されていないため、各プロセスで専用のプールを保持していま す。Apache mod_plsqlにプールされたデータベース接続の総数 は、発生するApacheプロセスの数と、様々なPL/SQLアプリ ケーションへのアクセスに使用されるDADの数に直接関連して います。PL/SQLゲートウェイ(mod_plsql)では、各Apacheプ ロセスのDADごとにデータベース・セッションを1つプールし ます。簡単に説明すると、mod_plsqlによってプールされるデー タベース・セッションの最大数は次のように計算されます。
NumberOfApacheProcesses*NumberOfDADs
現在、Windows NT/2000では、Apacheはマルチスレッドで動作 するため、同じデータベース接続プールをすべてのスレッドで共 有しています。Windows NT/2000のmod_plsqlによってプール されるデータベース・セッションの最大数は、次のように計算さ れます。
MaximumNumberOfApacheThreadsEverActiveForEachDAD 原則的には、どのスレッドも別のスレッドによって作成された データベース・セッションを利用できます。このため、Apacheが マルチスレッドで動作していないプラットフォームでは、慎重に 調整することが重要です。
Oracle Portalのトラブルシューティング
解決方法解決方法解決方法
解決方法 Apacheプロセスの設定は、プロセスの起動やシャットダウンが重
くならないように調整する必要があります(各プロセスがその接 続プールを解放し、新しいプロセスがそのプールを補充する必要 があります)。この調整は、Webサーバーの負荷によって管理さ れます。
データベース・セッションの最大数は、予想されるApacheプロ セスの最大数に従って設定する必要があります。http.conf ファイルの次のパラメータを編集します。
■ Set MaxRequests = MaxSpareServers
■ MaxRequestsPerchild=HighNumber
■ MinSpareServers=0
■ KeepAlive off
■ KeepAliveTimeOut
この設定によって、Apacheプロセスがシャットダウンすることは 非常にまれになり、Apacheプロセス/新しいデータベース接続 の作成にかかるオーバーヘッドが大幅に減少します。
解決方法 解決方法解決方法
解決方法 データベース構成ファイルのprocessesパラメータをチェック します(init$SID.ora => processes=NNN)。この数値は、
httpd.confファイルに設定されているApacheプロセスの最大 数と同じかそれ以上である必要があります。
StartServers+MaxSpareServers
この問題が発生しているかどうかを確認するには、SQL*Plusを介 してSYSとして接続し、問合せ「select username from v$session」を発行することも1つの方法です。行数のカウント
がprocessesパラメータの値とほぼ同じである場合は、プロセス
の最大数を上回っている可能性が高くなります。
解決方法 解決方法解決方法
解決方法 PL/SQL要求のみを処理するように個別のOracle HTTPサー
バー・リスナーを設定します。メインのApacheリスナーを使用 して、PL/SQL要求をすべてその新しいリスナーにリダイレクト することができます。新しいOracle9i Application Serverリス ナーに対しては、PL/SQL要求しか処理しないため、Apacheの
processesパラメータに低い値を指定します。したがって、データ
ベース・セッション数は最小限に抑えられます。
5.6項「Oracle HTTPサーバーの調整」を参照してください。
Oracle Portalのトラブルシューティング