Oracle Process Manager and Notification Server 管理者ガイド 10gリリース3(10.1.3.1.0) B31837-01 |
|
この付録では、OPMNに対するトラブルシューティングのヒントをいくつか紹介します。この章の項目は次のとおりです。
この項では、OPMNの使用に際して発生する共通の問題をいくつか説明します。この項の項目は次のとおりです。
OPMNを使用してOracle Application Serverプロセスを起動できない。
OPMNを使用してOracle Application Serverプロセスを起動できない場合は、次のことを実行してみてください。
ORACLE_HOME
/opmn/logs
ディレクトリにあります。たとえば、Oracle HTTP Serverの標準出力ログは、HTTP_Server~1
のようになります。
opmn.xml
ファイル内のOracle Application Serverコンポーネントの要素値を検証します。opmnctl validate
コマンドを使用して、opmn.xml
ファイルの構成を検証してください。起動しようとしているOracle Application Serverコンポーネントのopmn.xml
が正しく構成されていない場合もあります。
Oracle Application Serverプロセスに障害が発生、または接続不能になった。
Oracle Application Serverプロセスに障害が発生した場合、または接続不能になった場合は、次のことを実行してみてください。
ORACLE_HOME
/opmn/logs
のOracle Application Serverコンポーネント固有の出力を確認します。Oracle Application ServerプロセスについてORACLE_HOME
/opmn/logs/opmn.log
を確認します。process crashed
またはprocess unreachable
メッセージを探します。OPMNは、障害が発生または応答なしの状態になったOracle Application Serverプロセスを自動的に再起動します。
opmnctl
コマンドの実行にかかる時間は、Oracle Application Serverプロセスのタイプおよび使用可能なコンピュータ・ハードウェアによって異なります。そのため、opmnctl
コマンドの実行にかかる時間は、簡単には判断できません。
OC4Jのデフォルトの起動タイムアウトは約5分です。OC4Jプロセスがopmnctl
コマンドの後に起動しない場合、OPMNは、約1時間待機してから、リクエストをタイムアウトして終了します。
opmnctl
コマンドが正常に実行されていることを検証するには、次のことを実行してみてください。
start
要素のtimeout
属性値を増やします。opmn.xml
ファイルのタイムアウトを、プロセスが起動するまで待機できるレベルに設定します。この機能は、startproc
コマンドで使用できます。このコマンドは、opmn.xml
内に構成されているすべての関連プロセスを起動するものです。
opmn.xml
ファイルのstart
要素をチェックして、retry
属性値をより長い時間に変更します。
ORACLE_HOME
/opmn/logs/
を確認します。
ORACLE_HOME
/opmn/logs/OC4J~home~default_group~1
を確認します。Oracle Application ServerコンポーネントがOPMNによって自動的に再起動される。
Oracle Application ServerコンポーネントがOPMNによって自動的に再起動される場合は、次のことを実行してみてください。
ORACLE_HOME
/opmn/logs/opmn.log
ファイル内のOracle Application Serverコンポーネントのメッセージを確認します。
opmn.xml
ファイル内のOracle Application Serverコンポーネントのping timeout要素値を増やします。
OPMNを起動するopmnctl start
コマンドの使用時に予想外の動作が起こる場合があります。すなわち、OPMNだけが起動されたり、OPMNがOracle Application ServerのOPMNで管理されるプロセスを起動しようとします。通常、この予想外の動作は、まずOPMNを停止しないで、コンピュータの電源を切ったりリブートすることに起因します。コンピュータを再起動すると、OPMNが管理するすべてのプロセスが再起動されます。
OPMNを停止してから、コンピュータをシャットダウンすることをお薦めします。OPMNおよびOPMNが管理するプロセスを停止するには、opmnctl stopall
コマンドを使用します。
Microsoft Windowsオペレーティング・システムでは、Windowsサービスのコントロール・パネルを使用して、OPMNと、OPMNが管理するプロセスを停止できます。
Oracle Application Serverプロセスを起動できない。
Oracle Application Serverプロセスを起動できない場合は、Oracle Application Server opmn.xml
ファイルの要素がdisabled
になっているかどうかをチェックしてください。opmn.xml
ファイルの要素がdisabled
である場合、OPMNは、"Missing"
または"Disabled"
という出力メッセージを生成します。
1台のホストに複数のOracle Application Serverをインストールしており、それらを同時に起動しようとすると(たとえば、クラスタを起動すると)、OPMNが応答しなくなる場合があります。このとき、次のようなエラー・メッセージが表示されます。
"failed to restart a managed process after the maximum retry limit"
これは、1台のホストにある2つのOracleホームがRMI、JMSおよびAJPの各ポートに同じポート範囲を使用する場合に起こることがあります。あるOracleホームのOC4Jインスタンスが、別のOracleホームのOC4Jインスタンスと同じポートを使用しようとするためです。
Oracle Application Server内のすべてのOC4Jインスタンスに対するポートの割当ては、OPMNごとに管理されているので、1つのopmn.xml
ファイル内でポート範囲が重なることがあります。しかし、同じホスト上で2つのOPMNプロセスが同時に起動された場合、そのプロセス間でポートの使用に関する調整は行われません。
ポートの使用を調整するには、Oracleホームごとに一意のポート範囲を割り当てます。これにより、あるOracleホームのOPMNプロセスと別のOracleホームのOPMNが、OC4Jポートを割り当てる際に同じポート番号を使用することがなくなり、同じポートにバインドすることもなくなります。
また、OC4Jインスタンス起動の最大再試行回数を増やしておくこともお薦めします。2つのOracleホームで同一のポート範囲を割り当てている場合に、OPMNによるプロセス再起動の試行回数を増やしておくと、OPMNが空きポートを検出できる可能性が高まります。ただし、opmn.xmlファイルで指定したポート接続試行回数でOPMNが空きポートを見つけられないこともあるため、この方法で問題が完全に解決されるわけではありません。
opmnctl stop
コマンドまたはopmnctl stopall
コマンドを使用して、Oracle Application ServerのコンポーネントまたはOPMNが管理するプロセスを停止できない場合、そのコンポーネントまたはプロセスは、OPMNを使用して起動されたものではないことが考えられます。そのコンポーネントまたはプロセスは、起動スクリプトまたはユーティリティを使用して起動された可能性があります。
Oracle Application ServerのコンポーネントとOPMNが管理するプロセスは、起動や停止を絶対に手動で行わないでください。Oracle Application Serverコンポーネントを起動および停止する場合は、前バージョンのOracle Application Serverのコマンドライン・スクリプトまたはユーティリティを使用しないでください。
Oracle Application ServerコンポーネントおよびOPMNが管理するプロセスを起動および停止するには、Application Server Controlコンソールのopmnctl
コマンドライン・ユーティリティを使用します。
opmnctl
コマンドを実行すると、globalInitNLS
エラーが発生する場合があります。次のエラー・メッセージが表示されます。
"globalInitNLS: NLS boot file not found or invalid -- default linked-in boot block used XML parser init: error 201."
このエラーは、ORA_NLS33
環境変数が設定されている場合に発生します。この環境変数は設定しないでください。
Application Server Controlコンソールを使用してリモート・ホストのクラスタを起動すると、不明なステータスが返される場合があります。これは、ONSがローカル・ホストのIPアドレスにバインドされており、リモート・ホストから接続できないために発生します。
クラスタのメンバーごとに起動して、リモート・ホストのステータスを有効に監視および取得することをお薦めします。また、ONSがローカル・ホストのIPアドレスにバインドされていないことを確認してください。
一部のコンピュータでは、OPMNの起動時にCPU使用率が大幅に上昇します。コンピュータのCPU使用率は約50〜60%になります。影響を受けたコンピュータでは、OPMNが停止されるまでCPU使用率は上昇し続けます。
CPU使用率が過度に上昇する原因として、次のことが考えられます。
opmn.xml
ファイル内のONSサーバーのマルチキャスト・アドレスの構成がすべて不正 ONSはこのアドレスを使用して、クラスタ内の他のすべてのインスタンスを検出します。
opmnctl start
またはopmnctl startall
コマンドを使用してOPMNを起動しようとすると、次のエラー・メッセージが表示されます。
pingwait exits with 1220384
または
pingwait exits with 1220396
これらのエラー・メッセージは、ORACLE_HOME
/opmn/conf/opmn.xml
に修正が必要な構文エラーがあると生成されます。
これらのエラー・メッセージが表示された場合は、次の操作を行います。
opmn.xml
ファイルへの完全なディレクトリ・パスを使用して、次のコマンドを実行します。
prompt > opmnctl validate opmn.xml
opmn.xml
ファイルから、空のタグをすべて削除します。
すべてのONSサーバーにマルチキャスト・アドレスを構成してトポロジを構築し、Oracle Application Serverインスタンスのネットワークを設定する際、インスタンスの一部がOPMNで認識されません。
opmn.xml
ファイル内のすべてのONSサーバーにマルチキャスト・アドレスを構成して、複数のOracle Application Serverインスタンスをネットワーク化してトポロジを構築する場合、他のOracle Application Serverインスタンスとネットワークを構成し始める前に、ファイアウォールを無効にするか再構成する必要があります。
ファイアウォールを無効にするか再構成しないと、ネットワークを設定するためのマルチキャスト情報が伝達されず、トポロジが正しく構築されません。すべてのOPMNポートは、通知を受信できる必要があります。
以前のOracle DatabaseまたはOracle Application ServerがインストールされているコンピュータにOracle Application Serverをインストールすると、ORACLE_HOME
/opmn/logs/opmn.log
ファイルのサイズが4,100,000KB以上に増加します。これは、ロギングが継続して行われるためです。このファイルに次のエラー・メッセージが記録される場合があります。
"[ons-connect] Local connection 127.0.0.1,6100 invalid form factor "
opmn.xml
ファイルのリクエスト・ポートを、6100より大きい値に変更します。たとえば、次のように指定します。
<port local ="6202" remote="6302" request="6105"/>
このエラーが発生する最も多い原因は、同じコンピュータ上にインストールされている以前のOracle DatabaseまたはOracle Application Serverとの競合です。これは、既存または以前のOracle DatabaseおよびOracle Application ServerインストールのoraInventory
ディレクトリにあるエントリの問題により発生します。
OPMNの使用に際して発生する可能性のある問題のトラブルシューティングには、いくつかの方法があります。
OPMNログ・ファイルにより、OPMNおよびOPMNによって管理されるプロセスの実行と使用に際して発生する可能性のある問題のトラブルシューティングを行うことができます。OPMNおよびOPMNによって管理されるプロセスは、処理時にログ・ファイルを生成します。生成される次のログ・ファイルを確認して、OPMNコマンドが正常に実行されたかどうかを検証できます。
ORACLE_HOME
/opmn/logs/opmn.out:
OPMNの標準出力(stdout
)および標準エラー(stderr
)が記録されます。OPMNのコンソール・ログと呼ばれることもあります。OPMNの初期化のある時点を経過すると、このファイルには何も書き込まれなくなります。このファイルにはメッセージはわずかしか記述されません。そのため、ログ・ファイル・ディレクトリを検索しても、このファイルが見つからない場合があります。
ORACLE_HOME
/opmn/logs/)
: OPMNが管理するプロセスの標準出力および標準エラーが記録されます。OPMNは、各コンポーネントのログ・ファイルを作成し、Oracle Application Serverコンポーネントの一意の組合せに1つの番号を割り当てます。たとえば、OC4Jの標準出力ログは、OC4J~home~default_group~1
のようになります。1つのプロセスが終了し、新しいプロセスに代わると、前のプロセスのコンソール・ログ出力が保存され、そのコンソール・ログ・ファイルの最後に、新しいプロセスが追加されていきます。プロセス固有のコンソール・ログは、コンポーネントの起動と停止に関する問題を検証する際、最初に確認すべき最良のリソースです。
ORACLE_HOME
/opmn/logs/opmn.log
: コマンドの実行および操作の進行状況をトラッキングします。OPMNサーバーの動作の監視に役立つメッセージも記録されます。opmn.log
ファイルには、OPMNの子プロセスの終了ステータスが出力されます。ステータス・コードが4の場合は、OPMNが正常に再ロードされたことを示します。それ以外のステータス・コードはすべて、OPMNの子プロセスが異常終了したことを示します。opmn.log
ファイルは、opmn.xml
ファイルの<log>
属性を使用して構成されます。詳細は、第6章「opmn.xmlの一般的な構成」を参照してください。
ORACLE_HOME
/opmn/logs/opmn.dbg
: ONSおよびPMのOPMNデバッグ・ログ・メッセージ(英語のみ)が記録されます。opmn.dbg
ファイルにあるエラー・コードとエラー・メッセージを確認します。OPMNのPM部分は、エラー・メッセージを生成して、このファイルに出力します。opmn.dbg
ファイルは、コマンドの実行および操作の進行状況をトラッキングします。opmn.dbg
に記録されるログの詳細のレベルは、opmn.xml
ファイルの<debug>
要素を構成することによって変更できます。デバッグ・レベルの例は、第6章「opmn.xmlの一般的な構成」を参照してください。
OPMNのONS部分またはOPMNの初期エラーをデバッグするには、opmn.dbg
ファイルを使用します。OPMNのONS部分は、PMの前に初期化されます。したがって、OPMNの初期化の早い段階で発生したエラーがopmn.dbg
ファイルに表示されます。
opmn.dbg
ファイルの使用を有効にする場合は、事前にOracleサポート・サービスに問い合せてください。Oracleサポート・サービスでは、opmn.dbg
ファイルをデバッグやOPMNの問題診断に使用しています。通常、opmn.dbg
ファイルに含まれるメッセージは、ユーザーが容易に理解できる内容ではありません。
OPMNでは、ファイルのサイズ、時間、またはその両方のパラメータをopmn.log
およびopmn.dbg
ファイルのローテーションの条件に指定して、ファイルをローテーションすることができます。ローテーションを行うには、opmn.xml
ファイルの<log>
および<debug>
タグのrotation-size
属性とrotation-hour
属性を構成します。ログ・ファイルが指定したサイズに達するか、指定した日時に達するか、あるいはその両方のパラメータに達したとき、OPMNロギング・メカニズムによってファイルが閉じられ、一意のタイプスタンプの接尾辞がそのファイルの名前に付加された後、新しいopmn.log
またはopmn.dbg
ファイルが作成されます。
OPMNコンソール・ログ・ファイル(opmn.out
)はローテーションされません。このファイルのサイズは通常、非常に小さいです。OPMNが初期化のある時点を経過すると、コンソール出力ファイルに出力がされなくなるので、このファイルには比較的少数のメッセージしか記録されません。
プロセスの起動時、OPMNは既存のコンソール・ログ・ファイルを管理対象プロセスに割り当てる前に、そのファイルのサイズを、構成されている制限値(<log>
タグのrotation-size
属性)と照合します。ファイル・サイズが制限値を超えている場合、OPMNは既存のファイル名にタイムスタンプを付加して変更し、管理対象プロセスに新しいファイルを作成します。rotation-size
属性が構成されていない場合、OPMNは、プロセス・コンソール・ログ・ファイルのローテーションを行うことができません。
Oracle Application Serverプロセスのステータスおよびペンディングされているアクションがあるかどうかを検証するには、opmnctl debug
コマンドを使用します。お住まいの地域のオラクル社カスタマ・サポート・センターに問い合せる際、このコマンドによって生成される出力は、OPMNの問題の診断に役立ちます。
opmnctl debug
コマンドの構文は、次のとおりです。
opmnctl [<scope>] debug [comp=pm|ons] [interval=<secs> count=<num>]
@scope
は、リクエストのオプションの有効範囲です。
出力は、opmnctl debug
コマンドの実行後に生成されます。Oracleサポート・サービスに問い合せる際、生成された出力を問題の診断に役立てることをお薦めします。
このコマンドの属性(<attr>
)名は、comp
、interval
、count
のいずれかです。compの値は、ons
とpm
のいずれかで、それぞれONSとPMを表します。comp
が指定されていない場合、ons
とpm
の両方のデバッグ情報がレポートされます。たとえば、次のコマンドでは、ONSのデバッグ情報が出力されます。
prompt > opmnctl debug comp=ons
OPMNに送信されるリクエストの間隔(秒単位)と数を指定して、デバッグ・プロセスを支援できます。<interval>および<count>の値は、常に両方とも指定する必要があります。それらの値は1以上の整数にしてください。たとえば、次のコマンドでは、5秒間隔で3回デバッグ情報が出力されます。
prompt > opmnctl debug comp=pm interval=5 count=3
お住まいの地域のOracleサポート・サービスに問い合せる際、opmnctl debug
コマンドを使用して、OPMNの問題の診断にお役立てください。
Application Server Controlコンソールは、ネットワークおよび企業内のOracle Application Serverコンポーネントの診断を可能にするグラフィカル・インタフェースを提供します。Application Server Controlコンソールには、ログ・ページが用意されています。ログ・ページでは、1つの場所にすべてのOracle Application Serverログ・ファイルを表示し、複数のログ・ファイルにわたって問題をトレースすることを可能にします。Application Server Controlコンソールは、OPMNと通信を行うAPIを使用します。
Application Server Controlコンソールを使用して、Oracle Application Serverコンポーネントの有効または無効を設定できます。コンポーネントを無効にすると、Oracle Application Serverインスタンスの起動時にそれらのコンポーネントは起動しません。
Oracle Application Serverプロセスのイベント・アクティビティを記録する、ユーザー独自のイベント・スクリプトを作成できます。Oracle Application Serverプロセスの起動または停止の前のイベントや、予定外のシステム・クラッシュを記録するスクリプトを作成できます。
第6章「opmn.xmlの一般的な構成」の<event-scripts>要素の説明を参照してください。
例A-1は、起動前のイベント・スクリプトを示しています。
#!/bin/sh echo echo =---===----======---=-----=-----=------======----===---= echo =---===----===== PRE-START EVENT SCRIPT =====----===---= echo =---===----======---=-----=-----=------======----===---= timeStamp="N/A" instanceName="N/A" componentId="N/A" processType="N/A" processSet="N/A" processIndex="N/A" stderrPath="N/A" # not available w/pre-start unless part of restart stdoutPath="N/A" # not available w/pre-start unless part of restart reason="N/A" pid="N/A" # only available with pre-stop, post-crash startTime="N/A" # only available with pre-stop, post-crash while [ $# -gt 0 ]; do case $1 in -timeStamp) timeStamp=$2; shift;; -instanceName) instanceName=$2; shift;; -componentId) componentId=$2; shift;; -processType) processType=$2; shift;; -processSet) processSet=$2; shift;; -processIndex) processIndex=$2; shift;; -stderr) stderrPath=$2; shift;; -stdout) stdoutPath=$2; shift;; -reason) reason=$2; shift;; -pid) pid=$2; shift;; -startTime) startTime=$2; shift;; *) echo "Option Not Recognized: [$1]"; shift;; esac shift done echo timeStamp=$timeStamp echo instanceName=$instanceName echo componentId=$componentId echo processType=$processType echo processSet=$processSet echo processIndex=$processIndex echo stderr=$stderrPath echo stdout=$stdoutPath echo reason=$reason echo pid=$pid echo startTime=$startTime
注意
起動前のイベント・スクリプトのサンプル、例A-1は、Microsoft Windowsオペレーティング・システムでは機能しません。ただし、
必要な構成情報を |
OPMNサーバーの起動に使用される環境変数は、OPMNサーバーによって起動されるOracle Application Serverプロセスに継承されません。OPMNは、環境変数をias-instance
レベルで設定します。その値は、ias-instance
構成またはOPMNランタイム環境のいずれかから抽出されます。
他の解決策の詳細は、Oracle MetaLink(http://metalink.oracle.com)を参照してください。障害に対する解決策が見つからない場合は、サービス・リクエストを記録します。
|
![]() Copyright © 2006, Oracle. All Rights Reserved. |
|