| 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)にあります。問題点に対するソリューションが見つからない場合は、サービス・リクエストをログに記録してください。
|
関連項目:
|