Oracle Fusion Middleware Oracle Process Manager and Notification Server管理者ガイド 11gリリース1(11.1.1.1.3) B60985-01 |
|
戻る |
次へ |
この付録では、OPMNのトラブルシューティングのヒントを説明します。次のトピックで構成されています。
この項では、OPMNの使用に際して発生する共通の問題をいくつか説明します。次のトピックで構成されています。
問題点
OPMNを使用してシステム・プロセスを起動することができません。
ソリューション
OPMNを使用してシステム・プロセスを起動できない場合は、次のことを実行してみてください。
コマンド入力を検証し、必要に応じて修正します。入力しているコマンドのスペルと選択したオプションについて確認してください。
注意: OPMNまたはシステム・コンポーネントを起動するために、旧バージョンのOracle Application ServerやOracle Fusion Middlewareのコマンドライン・スクリプトまたはユーティリティを使用しないでください。 |
現在ではほとんどの管理対象プロセスには独自のログ・ディレクトリがあり、そのディレクトリがプロセス・ログ・ファイルの場所である場合は、OPMNはそのディレクトリを使用します。
ORACLE_INSTANCE/diagnostic/logs/<type>/<ias-component>/
管理対象プロセスのデフォルトのディレクトリが存在しない場合は、OPMNは次の独自のログ・ディレクトリにコンソール・ログを格納します。
ORACLE_INSTANCE/diagnostics/logs/OPMN/opmn/
たとえば、Oracle HTTP Serverの標準出力ログは、ORACLE_INSTANCE/diagnostics/logs/OHS/ohs1/console~OHS~1.log
のようになります。
起動しようとしているシステム・プロセスの依存性要件を検証します。
opmn.xml
ファイル内のシステム・コンポーネントの要素値を検証します。opmnctl validate
コマンドを使用して、opmn.xml
ファイルの構成を検証してください。起動しようとしているシステム・コンポーネントのopmn.xml
が正しく構成されていない場合もあります。
問題点
システム・プロセスが障害でダウンしているか、接続不能になっています。
ソリューション
システム・プロセスが障害でダウンしているか、接続不能になっている場合は、次のことを実行してみてください。
ORACLE_INSTANCE
/diagnostics/logs/OPMN/opmn
にあるシステム・コンポーネント固有の出力を確認します。
ORACLE_INSTANCE
/diagnostics/logs/OPMN/opmn/opmn.log
を参照してシステム・プロセスを探します。process crashed
またはprocess unreachable
メッセージを探します。OPMNは、障害が発生または応答なしの状態になっているシステム・プロセスを自動的に再起動します。
停止前またはクラッシュ後のイベントのイベント・スクリプトを作成します。イベント・スクリプトを使用すれば、特定のログ・ファイルを作成したり、障害に関する情報を電子メールで送信したりすることができます。
問題点
opmnctl
コマンドの実行にかかる時間は、システム・プロセスのタイプおよび使用可能なコンピュータ・ハードウェアによって異なります。そのため、opmnctl
コマンドの実行にかかる時間は、簡単には判断できません。
ソリューション
opmnctl
コマンドが正常に実行されていることを検証するには、次のことを実行してみてください。
起動していないコンポーネントのstart
要素のtimeout
属性値を大きくします。opmn.xml
ファイルに記述されているタイムアウトを、プロセスが起動するまでOPMNが待機できるレベルに設定します。この機能は、startproc
コマンドで使用できます。このコマンドは、opmn.xml
内に構成されているすべての関連プロセスを起動するものです。
opmn.xml
ファイル内のstart
要素をチェックして、retry
属性をより大きな時間増分値に変更します。
ORACLE_INSTANCE
/diagnostics/logs/
を参照して、起動していないシステム・プロセスがないか確認します。
起動していないシステム・コンポーネントのコンポーネント固有のログ・ファイルを確認します。たとえば、ORACLE_INSTANCE
/diagnostics/logs/OHS/ohs1/console~OHS~1.log
を確認します。
問題点
システム・コンポーネントがOPMNによって自動的に再起動されます。
ソリューション
システム・コンポーネントがOPMNによって自動的に再起動される場合は、次のことを実行してみてください。
問題点
場合によっては、opmnctl start
コマンドを使用してOPMNを起動すると予想外の動作が発生します。たとえば、OPMNだけが起動されたり、OPMNがシステム・プロセスを起動しようとしたりします。通常、この予想外の動作は、まずOPMNを停止しないでコンピュータの電源を切ったり再起動したりすることに起因します。コンピュータを再起動すると、すべてのシステム・コンポーネント・プロセスが起動されます。
ソリューション
OPMNを停止してから、コンピュータをシャットダウンすることをお薦めします。OPMNおよびシステム・コンポーネント・プロセスを停止するには、opmnctl stopall
コマンドを使用します。
Microsoft Windowsオペレーティング・システムでは、Windowsサービスのコントロール パネルを使用して、OPMNとシステム・コンポーネントを停止できます。
注意: OPMNは、管理されるプロセスの予想ステータスをディスクに記録します。OPMNの稼働中にコンピュータが停止した場合、再起動時にOPMNは、ディスクにキャッシュされていた情報を使用して、システムの停止時に実行されていたプロセスをすべて自動的に再起動しようとします。そのため、OPMNのみを起動するつもりで、OPMNが管理するプロセスを起動する明示的なリクエストを発行していなくても、それらのプロセスも起動されてしまっている場合があります。この自動プロセス・リカバリを無効にするには、 restore-procs-on-reboot="true" |
問題点
システム・プロセスを起動することができません。
ソリューション
システム・プロセスを起動できない場合は、システムのopmn.xml
ファイル内の要素がdisabled
になっているかどうかを確認してください。opmn.xml
ファイルの要素がdisabled
である場合、OPMNは、"Missing"
または"Disabled"
という出力メッセージを生成します。
問題点
1台のホストに複数のOracle Fusion Middlewareをインストールしており、それらを同時に起動しようとすると(たとえばファームを起動するために)、OPMNが応答しなくなる場合があります。この場合、次のようなエラー・メッセージが表示されます。
"failed to restart a managed process after the maximum retry limit"
この問題は、同一ホスト上の2つのOracleインスタンスが同じポートを使用する場合に発生することがあります。一方のOracleインスタンス内のOHSコンポーネントが、他方のOracleインスタンス内のOHSコンポーネントと同じポートを使用しようとするためです。同一ホスト上の2つのOPMNプロセスが同時に起動された場合、これらのプロセスの間でポートの使用に関する調整は行われません。Oracle Fusion Middleware内のすべてのOHSインスタンスに対するポートの割当てはOPMNによって制御されるため、単一のopmn.xml
ファイル内で重複するポート範囲が存在する可能性があります。しかし、1つのホスト上で2つのOPMNプロセスが同時に起動された場合、そのプロセス間でポートの使用に関する調整は行われません。
ソリューション
各Oracleインスタンス内のOHSに割り当てられるポートが重複しておらず、コンピュータ上の他のどのプロセスによっても使用されていないことを確認してください。
また、Oracleインスタンス起動の最大再試行回数を増やすこともお薦めします。2つのOracleホームで同一のポート範囲を割り当てている場合に、OPMNによるプロセス再起動の試行回数を大きくすることで、OPMNでは最終的に空きポートが選択されます。ただし、opmn.xmlファイルで指定したポート接続試行回数ではOPMNが空きポートを見つけられない可能性もあるため、この方法で問題が完全に解決されるわけではありません。
問題点
opmnctl stop
コマンドまたはopmnctl stopall
コマンドを使用してシステム・コンポーネントを停止できない場合は、そのコンポーネントまたはプロセスは、OPMNを使用して起動されていない可能性が高いと考えられます。そのコンポーネントまたはプロセスは、起動スクリプトまたはユーティリティを使用して起動された可能性があります。
ソリューション
どのような場合でも、システム・コンポーネントを手動で起動したり停止したりしないでください。システム・コンポーネントを起動および停止するために、旧バージョンのOracle Application ServerやOracle Fusion Middlewareのコマンドライン・スクリプトまたはユーティリティを使用しないでください。
システム・コンポーネントを起動および停止するには、Fusion Middleware 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
環境変数が設定されている場合に発生します。この環境変数は、設定しないでください。
問題点
一部のコンピュータでは、OPMNの起動時にCPU使用率が大幅に上昇します。コンピュータのCPU使用率は約50〜60%に変化することがあります。対象となるコンピュータでは、OPMNが停止されるまでCPU使用率は上昇し続けます。
ソリューション
CPU使用率が大幅に上昇する原因の1つとしては、インストール環境で日本語などのマルチバイト・テキスト文字セットが使用されていることが考えられます。
問題点
opmnctl start
またはopmnctl startall
コマンドを使用してOPMNを起動しようとすると、次のエラー・メッセージが表示されます。
pingwait exits with 1220384
または
pingwait exits with 1220396
これらのエラー・メッセージは、ORACLE_INSTANCE
/config/OPMN/opmn/opmn.xml
内に修正が必要な構文エラーがあると生成されます。
ソリューション
これらのエラー・メッセージが表示された場合は、次の操作を行います。
次のコマンドを実行します(opmn.xml
ファイルへの完全なディレクトリ・パスを使用する)。
opmnctl validate opmn.xml
opmn.xml
ファイルから、空のタグをすべて削除します。
問題点
すでにOracle DatabaseまたはOracle Fusion MiddlewareがインストールされているコンピュータにOracle Fusion Middlewareをインストールすると、ロギングが継続的に実行されるために、ORACLE_INSTANCE
/diagnostics/logs/OPMN/opmn/opmn.log
ファイルのサイズが増加して4100000KBを超えます。このファイルには、次のエラー・メッセージが記録されます。
"[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 Fusion Middlewareとの競合です。このエラーの発生は、Oracle DatabaseまたはOracle Fusion Middlewareの既存のインストールまたは以前のインストールのoraInventory
ディレクトリ内のエントリに起因します。
問題点
Oracleインスタンスまたはコンポーネントによって、opmnctl
コマンドの間違ったデフォルト値がいくつか割り当てられています。
ソリューション
opmnctl deleteinstance
コマンドを-force
trueオプションで実行して、Oracleインスタンスまたはコンポーネントをクリーンアップしてください。
次に例を示します。
opmnctl deleteinstance -oracleInstance /scratch/bsong/demo1/inst1 -instanceName inst1 \ -adminHost myhost -adminPort myport -force true
-force
オプションは注意して使用してください。opmnctl deleteinstance
コマンドでこのオプションを使用すると、Oracleインスタンスまたはコンポーネントの整合性を保護するためのいくつかの安全上の仕組みが無効化されます。このオプションを不適切に使用すると、問題が発生することがあります。
すべての適用可能な引数(oracleInstance
、instanceName
、adminHost
、adminPort
など)をopmnctl deleteinstance
コマンドで明示的に指定すると、望ましい結果が得られる可能性があります。
クリーンアップの実行時、forceオプションを使用したコマンドにより、Oracleインスタンスまたはコンポーネントの破損状態に応じた警告や例外が表示されます。これらの警告は、検出された不一致に対する視覚的なフィードバックとして表示されるものであり、さらに修正処置が必要であることを必ずしも示しているわけではありません。
問題点
opmnctlに指定されたパス引数に引用符(")が含まれていると、最初の引用符の後に続くすべての部分(opmn用のその他のフラグも含む)がORACLE_INSTANCEの名前になります。この問題は、Windowsオペレーティング・システムの場合にのみ発生します。
次に例を示します。
opmnctl createinstance -oracleInstance %T_WORK%\"inst1" -adminRegistrationOFF
この例では、ORACLE_INSTANCEの名前は次のようになります。
inst1-adminRegistration OFF
ソリューション
引数またはコマンド全体を引用符で囲んでください。
次に例を示します。
opmnctl createinstance "%T_WORK%\inst1" -adminRegistration OFF
修正された例では、ORACLE_INSTANCEの名前は次のようになります。
inst1
OPMNの使用に際して発生する可能性のある問題のトラブルシューティングには、いくつかの方法があります。
OPMNログ・ファイルにより、OPMNおよびシステム・コンポーネント・プロセスの実行と使用に際して発生する可能性のある問題のトラブルシューティングを行うことができます。OPMNおよびシステム・コンポーネント・プロセスは、処理時にログ・ファイルを生成します。生成される次のログ・ファイルを確認して、OPMNコマンドの実行に成功したか、または失敗したかを検証できます。
ORACLE_INSTANCE
/diagnostics/OPMN/opmn/opmn.out:
OPMNの標準出力(stdout
)および標準エラー(stderr
)のログが記録されています。OPMNのコンソール・ログとも呼ばれます。OPMNの特定の初期化ポイント以降は、このファイルには他に何も書き込まれません。少数のメッセージ群のみがこのファイルに書き込まれます。したがって、ログ・ファイルのディレクトリに対して検索を実行した場合、このファイルが存在しないこともあります。
ORACLE_INSTANCE
/opmn/logs/opmn.log
: コマンドの実行と動作の進行状況を追跡します。OPMNサーバーの動作を監視するうえで有益なメッセージが収められています。opmn.log
ファイルに書き込まれた出力には、OPMNの子プロセスの終了ステータスが含まれます。ステータス・コードが4の場合は、OPMNが正常に再ロードされたことを示します。他のステータス・コードはすべて、OPMNの子プロセスが異常終了したことを示します。opmn.log
ファイルは、opmn.xml
ファイルに記述されている<log>
属性を使用して構成されます。opmn.xml
ファイルの一般的な構成の詳細は、第6章を参照してください。
ORACLE_INSTANCE
/diagnostics/logs/OPMN/opmn/debug.log
: ONSとPMに対するOPMNデバッグ・ログ・メッセージ(英語表記のみ)が収められています。debug.log
ファイルに記録されているエラー・コードおよびメッセージを確認してください。OPMNのPM部分は、エラー・メッセージを生成して、このファイル内に出力します。debug.log
ファイルは、コマンドの実行と動作の進行状況の追跡に使用されます。debug.log
に記録されるログ情報の詳細レベルは、opmn.xml
ファイル内の<debug>
要素の構成によって変更できます。
デバッグ・レベルの例は、第6章を参照してください。
debug.log
ファイルを使用して、OPMNのONS部分を修正するか、またはOPMNの初期エラーを調べます。OPMNのONS部分は、PMの前に初期化されます。したがって、OPMNの初期化の早期段階で生じるエラーは、debug.log
ファイルに記録されます。
debug.log
ファイルの使用は、Oracleサポート・サービスに問い合せた後にのみ有効化してください。Oracleサポート・サービスでは、debug.log
ファイルを使用して、OPMNの問題のデバッグおよび診断を実行します。debug.log
ファイル内のメッセージは通常、ユーザーに簡単に理解できるものではありません。
OPMNを使用すると、ファイル・サイズ、特定の時刻、またはその両方のパラメータに基づいて、opmn.log
およびdebug.log
ファイルのローテーションを行うことができます。ローテーションを使用できるようにするには、<log>
および<debug>
タグのrotation-size
およびrotation-hour
属性をopmn.xml
ファイル内に構成します。ログ・ファイルが指定されたサイズに達するか、指定された時刻になったとき、またはその両方のパラメータを組み合せた条件が満たされたときに、OPMNのロギング・メカニズムにより、ファイルが閉じられ、ファイル名が一意のタイムスタンプを接尾辞とする名前に変更され、新しいopmn.log
またはdebug.log
ファイルが作成されます。
OPMNコンソールのログ・ファイル(opmn.out
)については、ローテーションは行われません。このファイルのサイズは、通常、非常に小さいからです。OPMNが初期化ポイントを超えた後は、出力はコンソールの出力ファイルに書き込まれなくなるため、このファイルに記録されるメッセージ群は少なくなります。
システム・プロセスのステータスおよび保留中の操作の有無を確認するには、opmnctl debug
コマンドを使用します。このコマンドは、最寄りのOracleサポート・サービスに問い合せる際に使用できる、OPMNの問題の診断に役立つ出力を生成します。
opmnctl debug
コマンドの構文は、次のとおりです。
opmnctl debug [comp=pm|ons] [interval=<secs> count=<num>]
出力は、opmnctl debug
コマンドの実行後に生成されます。生成された出力を問題の診断に役立てる際に、Oracleサポート・サービスに問い合せることをお薦めします。
このコマンドの属性(<attr>
)名は、comp
、interval
またはcount
のいずれかです。compの値は、ons
またはpm
のいずれかで、それぞれONSとPMを表します。comp
が指定されていない場合、ons
とpm
の両方のデバッグ情報がレポートされます。たとえば、次のコマンドでは、ONSのデバッグ情報が出力されます。
opmnctl debug comp=ons
OPMNに送信されるリクエストの間隔(秒単位)と数を指定して、デバッグ・プロセスを支援できます。<interval>および<count>の値は、常に両方とも指定する必要があります。それらの値は0よりも大きな整数にしてください。たとえば、次のコマンドでは、5秒間隔で3回デバッグ情報が出力されます。
opmnctl debug comp=pm interval=5 count=3
最寄りのOracleサポート・サービスに問い合せ、opmnctl debug
コマンドを使用してOPMNの問題の診断に役立てください。
Fusion Middleware Controlコンソールのグラフィカル・インタフェースを使用して、ネットワークや企業内のシステム・コンポーネントを診断できます。Fusion Middleware Controlコンソールでは、ログ・ページが用意されています。ログ・ページでは、1つの場所にすべてのシステム・ログ・ファイルを表示し、複数のログ・ファイルにわたって問題をトレースすることが可能です。Fusion Middleware Controlコンソールは、OPMNと通信するAPIを使用します。
関連項目: 『Oracle Fusion Middleware管理者ガイド』 |
システム・プロセスのイベント・アクティビティを記録する、ユーザー独自のイベント・スクリプトを作成できます。システム・プロセスの起動または停止の前のイベントや、予定外のシステム・クラッシュを記録するスクリプトを作成できます。
第6章のevent-scripts要素の説明を参照してください。
例B-1は、起動前のイベント・スクリプトを示しています。
例B-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
注意: 起動前のイベント・スクリプト例である例B-1は、Microsoft Windowsオペレーティング・システムでは機能しません。ただし、同様の機能を持つ.bat 拡張子付きのスクリプトを作成できます。
必要な構成情報を |
OPMNサーバーの起動に使用される環境変数は、OPMNサーバーによって起動されるシステム・プロセスによって継承されません。OPMNは、ias-instance
レベルにこの環境変数を設定しますが、その際に、値はias-instance
構成またはOPMNランタイム環境から抽出されます。
さらに多くのソリューションが、Oracle MetaLink(http://metalink.oracle.com
)にあります。問題点に対するソリューションが見つからない場合は、サービス・リクエストをログに記録してください。
関連項目:
|