ヘッダーをスキップ

Oracle Process Manager and Notification Server 管理者ガイド
10gリリース3(10.1.3.1.0)

B31837-01
目次
目次
索引
索引

戻る 次へ

A OPMN トラブルシューティング

この付録では、OPMNに対するトラブルシューティングのヒントをいくつか紹介します。この章の項目は次のとおりです。

A.1 障害と解決策

この項では、OPMNの使用に際して発生する共通の問題をいくつか説明します。この項の項目は次のとおりです。

A.1.1 Oracle Application Server プロセスが起動しない

障害

OPMNを使用してOracle Application Serverプロセスを起動できない。

解決策

OPMNを使用してOracle Application Serverプロセスを起動できない場合は、次のことを実行してみてください。

A.1.2 Oracle Application Serverプロセスに障害が発生または応答なしの状態になっているかどうかを判断する

障害

Oracle Application Serverプロセスに障害が発生、または接続不能になった。

解決策

Oracle Application Serverプロセスに障害が発生した場合、または接続不能になった場合は、次のことを実行してみてください。

A.1.3 opmnctlコマンド実行のタイムアウト

障害

opmnctlコマンドの実行にかかる時間は、Oracle Application Serverプロセスのタイプおよび使用可能なコンピュータ・ハードウェアによって異なります。そのため、opmnctlコマンドの実行にかかる時間は、簡単には判断できません。

OC4Jのデフォルトの起動タイムアウトは約5分です。OC4Jプロセスがopmnctlコマンドの後に起動しない場合、OPMNは、約1時間待機してから、リクエストをタイムアウトして終了します。

解決策

opmnctlコマンドが正常に実行されていることを検証するには、次のことを実行してみてください。

  1. 起動していないコンポーネントのstart要素のtimeout属性値を増やします。opmn.xmlファイルのタイムアウトを、プロセスが起動するまで待機できるレベルに設定します。この機能は、startprocコマンドで使用できます。このコマンドは、opmn.xml内に構成されているすべての関連プロセスを起動するものです。

  2. opmn.xmlファイルのstart要素をチェックして、retry属性値をより長い時間に変更します。

  3. 起動していないOracle Application ServerプロセスのORACLE_HOME/opmn/logs/を確認します。

  4. 起動していないOracle Application Serverコンポーネントのコンポーネント固有のログ・ファイルを確認します。たとえば、ORACLE_HOME/opmn/logs/OC4J~home~default_group~1を確認します。

    関連項目

    第6章「opmn.xmlの一般的な構成」 

A.1.4 Oracle Application Server コンポーネントがOPMNによって自動的に再起動される

障害

Oracle Application ServerコンポーネントがOPMNによって自動的に再起動される。

解決策

Oracle Application ServerコンポーネントがOPMNによって自動的に再起動される場合は、次のことを実行してみてください。

A.1.5 opmnctl startの予想外の動作

障害

OPMNを起動するopmnctl startコマンドの使用時に予想外の動作が起こる場合があります。すなわち、OPMNだけが起動されたり、OPMNがOracle Application ServerのOPMNで管理されるプロセスを起動しようとします。通常、この予想外の動作は、まずOPMNを停止しないで、コンピュータの電源を切ったりリブートすることに起因します。コンピュータを再起動すると、OPMNが管理するすべてのプロセスが再起動されます。

解決策

OPMNを停止してから、コンピュータをシャットダウンすることをお薦めします。OPMNおよびOPMNが管理するプロセスを停止するには、opmnctl stopallコマンドを使用します。

Microsoft Windowsオペレーティング・システムでは、Windowsサービスのコントロール・パネルを使用して、OPMNと、OPMNが管理するプロセスを停止できます。


注意

OPMNは、管理対象プロセスの予想ステータスの記録をディスクに残します。OPMNの稼動中にコンピュータが停止した場合、再起動時にOPMNは、ディスクにキャッシュされていた情報を使用して、システムの停止時に実行されていたプロセスをすべて自動的に再起動しようとします。そのため、OPMNのみを起動するつもりで、OPMNが管理するプロセスを起動する明示的なリクエストを発行していなくても、それらのプロセスも開始される場合があります。この自動プロセス・リカバリを無効にするには、OPMNを起動する前に、ORACLE_HOME/opmn/logs/statesディレクトリにあるファイルをすべて削除します。

statesディレクトリとその内容は、OPMNまたはOPMNが管理するプロセスの実行中に変更しないでください。/statesディレクトリを変更しないことをお薦めします。 


A.1.6 opmn.xmlファイルの無効な要素

障害

Oracle Application Serverプロセスを起動できない。

解決策

Oracle Application Serverプロセスを起動できない場合は、Oracle Application Server opmn.xmlファイルの要素がdisabledになっているかどうかをチェックしてください。opmn.xmlファイルの要素がdisabledである場合、OPMNは、"Missing"または"Disabled"という出力メッセージを生成します。

A.1.7 OC4Jを起動できない

障害

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が空きポートを見つけられないこともあるため、この方法で問題が完全に解決されるわけではありません。


注意

『Oracle Application Server管理者ガイド』 


A.1.8 コンポーネントを停止できない

障害

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コマンドライン・ユーティリティを使用します。

関連項目

第5章「OPMNの使用」  

A.1.9 globalInitNLSエラー

障害

opmnctlコマンドを実行すると、globalInitNLSエラーが発生する場合があります。次のエラー・メッセージが表示されます。

"globalInitNLS: NLS boot file not found or invalid -- default linked-in boot block used 
XML parser init: error 201."

解決策

このエラーは、ORA_NLS33環境変数が設定されている場合に発生します。この環境変数は設定しないでください。

A.1.10 クラスタのリモート・ホストを個別に起動する

障害

Application Server Controlコンソールを使用してリモート・ホストのクラスタを起動すると、不明なステータスが返される場合があります。これは、ONSがローカル・ホストのIPアドレスにバインドされており、リモート・ホストから接続できないために発生します。

解決策

クラスタのメンバーごとに起動して、リモート・ホストのステータスを有効に監視および取得することをお薦めします。また、ONSがローカル・ホストのIPアドレスにバインドされていないことを確認してください。

A.1.11 OPMNの起動時にCPU使用率が増加する

障害

一部のコンピュータでは、OPMNの起動時にCPU使用率が大幅に上昇します。コンピュータのCPU使用率は約50〜60%になります。影響を受けたコンピュータでは、OPMNが停止されるまでCPU使用率は上昇し続けます。

解決策

CPU使用率が過度に上昇する原因として、次のことが考えられます。

A.1.12 OPMN起動時にエラー・メッセージが表示される

障害

opmnctl startまたはopmnctl startallコマンドを使用してOPMNを起動しようとすると、次のエラー・メッセージが表示されます。

pingwait exits with 1220384

または

pingwait exits with 1220396

これらのエラー・メッセージは、ORACLE_HOME/opmn/conf/opmn.xmlに修正が必要な構文エラーがあると生成されます。

解決策

これらのエラー・メッセージが表示された場合は、次の操作を行います。

A.1.13 マルチキャスト・アドレス構成を使用してトポロジを構築する場合にファイアウォールを無効または再構成する

障害

すべてのONSサーバーにマルチキャスト・アドレスを構成してトポロジを構築し、Oracle Application Serverインスタンスのネットワークを設定する際、インスタンスの一部がOPMNで認識されません。

解決策

opmn.xmlファイル内のすべてのONSサーバーにマルチキャスト・アドレスを構成して、複数のOracle Application Serverインスタンスをネットワーク化してトポロジを構築する場合、他のOracle Application Serverインスタンスとネットワークを構成し始める前に、ファイアウォールを無効にするか再構成する必要があります。

ファイアウォールを無効にするか再構成しないと、ネットワークを設定するためのマルチキャスト情報が伝達されず、トポロジが正しく構築されません。すべてのOPMNポートは、通知を受信できる必要があります。

A.1.14 opmn.logファイルのサイズが増加する

障害

以前の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ディレクトリにあるエントリの問題により発生します。

A.2 OPMNの問題の診断

OPMNの使用に際して発生する可能性のある問題のトラブルシューティングには、いくつかの方法があります。

A.2.1 OPMNログ・ファイル

OPMNログ・ファイルにより、OPMNおよびOPMNによって管理されるプロセスの実行と使用に際して発生する可能性のある問題のトラブルシューティングを行うことができます。OPMNおよびOPMNによって管理されるプロセスは、処理時にログ・ファイルを生成します。生成される次のログ・ファイルを確認して、OPMNコマンドが正常に実行されたかどうかを検証できます。

A.2.1.1 opmn.logおよびopmn.dbgファイルのローテーション

OPMNでは、ファイルのサイズ、時間、またはその両方のパラメータをopmn.logおよびopmn.dbgファイルのローテーションの条件に指定して、ファイルをローテーションすることができます。ローテーションを行うには、opmn.xmlファイルの<log>および<debug>タグのrotation-size属性とrotation-hour属性を構成します。ログ・ファイルが指定したサイズに達するか、指定した日時に達するか、あるいはその両方のパラメータに達したとき、OPMNロギング・メカニズムによってファイルが閉じられ、一意のタイプスタンプの接尾辞がそのファイルの名前に付加された後、新しいopmn.logまたはopmn.dbgファイルが作成されます。

OPMNコンソール・ログ・ファイル(opmn.out)はローテーションされません。このファイルのサイズは通常、非常に小さいです。OPMNが初期化のある時点を経過すると、コンソール出力ファイルに出力がされなくなるので、このファイルには比較的少数のメッセージしか記録されません。

A.2.1.2 プロセス・コンソール・ログ・ファイルのローテーション

プロセスの起動時、OPMNは既存のコンソール・ログ・ファイルを管理対象プロセスに割り当てる前に、そのファイルのサイズを、構成されている制限値(<log>タグのrotation-size属性)と照合します。ファイル・サイズが制限値を超えている場合、OPMNは既存のファイル名にタイムスタンプを付加して変更し、管理対象プロセスに新しいファイルを作成します。rotation-size属性が構成されていない場合、OPMNは、プロセス・コンソール・ログ・ファイルのローテーションを行うことができません。

A.2.2 opmnctl debug

Oracle Application Serverプロセスのステータスおよびペンディングされているアクションがあるかどうかを検証するには、opmnctl debugコマンドを使用します。お住まいの地域のオラクル社カスタマ・サポート・センターに問い合せる際、このコマンドによって生成される出力は、OPMNの問題の診断に役立ちます。

opmnctl debugコマンドの構文は、次のとおりです。

opmnctl [<scope>] debug [comp=pm|ons] [interval=<secs> count=<num>]

@scopeは、リクエストのオプションの有効範囲です。

出力は、opmnctl debugコマンドの実行後に生成されます。Oracleサポート・サービスに問い合せる際、生成された出力を問題の診断に役立てることをお薦めします。

このコマンドの属性(<attr>)名は、compintervalcountのいずれかです。compの値は、onspmのいずれかで、それぞれONSとPMを表します。compが指定されていない場合、onspmの両方のデバッグ情報がレポートされます。たとえば、次のコマンドでは、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の問題の診断にお役立てください。

A.2.3 Oracle Enterprise Manager 10g Application Server Controlコンソール

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管理者ガイド』 

A.2.4 イベント・スクリプトを使用したトラブルシューティング

Oracle Application Serverプロセスのイベント・アクティビティを記録する、ユーザー独自のイベント・スクリプトを作成できます。Oracle Application Serverプロセスの起動または停止の前のイベントや、予定外のシステム・クラッシュを記録するスクリプトを作成できます。

第6章「opmn.xmlの一般的な構成」<event-scripts>要素の説明を参照してください。

例A-1は、起動前のイベント・スクリプトを示しています。

例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オペレーティング・システムでは機能しません。ただし、.bat接尾辞の使用により、同様の機能を持つスクリプトを作成できます。

必要な構成情報をopmn.xmlファイルに追加するときには、.batファイルへのフルパスを使用します。 


A.2.5 opmn.xml環境変数

OPMNサーバーの起動に使用される環境変数は、OPMNサーバーによって起動されるOracle Application Serverプロセスに継承されません。OPMNは、環境変数をias-instanceレベルで設定します。その値は、ias-instance構成またはOPMNランタイム環境のいずれかから抽出されます。

関連項目

第6章「opmn.xmlの一般的な構成」 

A.3 その他のヘルプ情報

他の解決策の詳細は、Oracle MetaLink(http://metalink.oracle.com)を参照してください。障害に対する解決策が見つからない場合は、サービス・リクエストを記録します。

関連項目

  • Oracle Application Serverのリリース・ノート(次のOracle Technology NetworkのWebサイトで入手できます)

    http://www.oracle.com/technology/documentation/

 


戻る 次へ
Oracle
Copyright © 2006, Oracle.

All Rights Reserved.
目次
目次
索引
索引