この付録では、Oracle Fusion Middlewareを使用しているときに発生する可能性のある障害のトラブルシューティング方法について説明します。内容は次のとおりです。
Oracle Fusion Middlewareコンポーネントは、起動および停止情報、エラー、警告メッセージ、HTTPリクエスト時のアクセス情報など、すべての種類のイベントを記録するメッセージが格納されたログ・ファイルを生成します。このログ・ファイルを、障害の特定と診断に使用できます。ログ・ファイルの使用と読取りの詳細は、第12章「ログ・ファイルと診断データの管理」を参照してください。
Oracle Fusion Middlewareには、問題の検出、診断および解決を支援する診断フレームワークが含まれています。特に対象としている障害は、コードのバグ、メタデータの破損、顧客データの破損に起因する障害、スレッドのデッドロック、一貫性のない状態などのクリティカル・エラーです。
クリティカル・エラーが発生すると、そのエラーにはインシデント番号が割り当てられ、エラーの診断ログ(ログ・ファイルなど)が即座に取得され、その番号でタグ付けされます。データは、自動診断リポジトリ(ADR)に格納されます。ADRでは、後でデータをインシデント番号によって取得し、分析することができます。診断フレームワークの詳細は、第13章「問題の診断」を参照してください。
この項では、一般的な障害と解決策について説明します。次の項目が含まれます。
データベースのパフォーマンスが低下している場合や、Oracle WebLogic Serverのログ・ファイルに次のメッセージが出力された場合は、データ・ソース接続がリークしている可能性があります。
No resources currently available in pool datasource name
Any product functionality that depend on the datasource will not function as it can't connect database to get required data.
このメッセージが出力された場合は、管理コンソールのデータ・ソース・モニタリング・ページから接続使用量をモニターします。
「ドメイン構造」で、「サービス」→「データ・ソース」を選択します。
モニターするデータ・ソースをクリックします。
「モニタリング」タブ→「統計」タブを選択します。
表に「現在アクティブな接続の数」が表示されない場合は、「この表のカスタマイズ」をクリックします。
「列の表示」で、「現在アクティブな接続の数」を選択して、それを「使用可能」ボックスから「選択済み」ボックスに移動します。「適用」をクリックします。
表内の「現在アクティブな接続の数」列の数に注目します。
現在アクティブなデータ・ソースの数が増え続け、減少しないようであれば、このデータ・ソースで接続がリークしています。Oracleサポートに連絡してください。
JRFを使用して管理対象サーバーを構成すると、Spring 2.0.6がインストールされ、Oracle WebLogic Serverのシステム・クラスパスに配置されます。JRF環境で実行されているカスタム・アプリケーションが、異なるバージョンのSpringを必要とする場合、フィルタリングClassLoaderメカニズムを使用して、Springのバージョンを指定する必要があります。
Oracle WebLogic Serverは、デプロイメント記述を構成して特定のパッケージが常に(システム・クラス・ローダーによってではなく)アプリケーションからロードされることを明示的に指定できるように、FilteringClassLoaderメカニズムを提供します。この機能により、SpringやAntなど、アプリケーションの代替のバージョンを使用できます。
FilteringClassLoaderメカニズムの使用方法の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverアプリケーションの開発』のフィルタリングClassLoaderの使用に関する項を参照してください。
管理対象サーバーがノード・マネージャによって起動される場合(サーバーがOracle WebLogic Server管理コンソールまたはFusion Middleware Controlによって起動される場合)、管理対象サーバーを起動するときに起動スクリプトを使用するようにノード・マネージャが構成されていないと、ClassNotFoundエラーが発生する場合があります。この障害の解決方法の詳細は、第4.2.1項を参照してください。
次の各項では、Fusion Middleware Controlを使用したときに発生する問題について説明します。
Fusion Middleware Controlのパフォーマンス・メトリックおよびグラフの表示のトラブルシューティング
Fusion Middleware ControlからOracle WebLogic Server管理コンソールへの接続の保護
Fusion Middleware Controlを使用してシステム・コンポーネントを管理している場合、特定の管理対象ターゲットに関してパフォーマンス・メトリックおよびグラフが正しく表示されないという状況が発生する場合があります。
次の各項では、管理対象ターゲットに関する情報を示し、レスポンス時間やロード・メトリックなどのパフォーマンス・メトリックを表示しようとしたときにFusion Middleware Controlがエラーを表示する場合に実行する一般的なトラブルシューティング・タスクについて説明します。
Fusion Middleware Controlで次のコンポーネントを検出し、表示するには、Oracle Management Agentが使用可能で実行中である必要があります。
Oracle Internet Directory
Oracle Virtual Directory
Oracle Directory Integration Platform
Oracle Identity Federation
Oracle Reportsアプリケーション、Oracle Reports Server
これらのコンポーネントは、エージェントの監視中のターゲットと呼ばれます。
これらのコンポーネントを含むOracle Fusion Middleware環境をインストールして構成すると、管理エージェント(Oracle Management Agent)もOracleインスタンスにインストールされ実行されます。
対照的に、Javaコンポーネントおよび一部のシステム・コンポーネントは、管理エージェントなしでFusion Middleware Controlによって管理できます。
Oracle Management Agentの詳細は、Oracle Technology Network (OTN)でOracle Enterprise Managerのドキュメントを参照してください。
http://www.oracle.com/technetwork/oem/grid-control/documentation/index.html
すべてのエージェントの監視中のターゲットの監視資格証明の管理を容易にするために、「監視資格証明」ページを使用して、ファームにおけるすべてのエージェントの監視中のターゲットの監視資格証明を設定できます。
「ファーム」メニューから、「監視資格証明」を選択します。
最低でもmonitoring
レベルの権限があるOracle WebLogic Serverのユーザー・アカウントのユーザー名とパスワードを入力します。
このページで監視資格証明を設定すると、ファームにおけるエージェントの監視中のターゲットの監視資格証明がすべてオーバーライドされます。ただし、すべてのターゲットの監視資格証明を設定した後は、第J.3.1.3項の説明のとおり、「エージェントの監視中のターゲット」ページを使用して、特定のターゲットの証明書をオーバーライドできます。
ターゲット(Oracle Fusion Middlewareコンポーネント)を管理するために、Oracle Management Agentは、Oracle WebLogic Server管理アカウントを使用してターゲットに接続します。Oracle Management Agentは、ターゲットに接続した後、パフォーマンス・メトリックを収集し、それをFusion Middleware Controlに戻し、そこで監視ページおよびパフォーマンス・グラフにパフォーマンス・メトリックを表示できます。
この管理アカウントおよびそのパスワードは、エージェントの監視中のターゲットの監視資格証明と呼ばれます。
特定のターゲットの監視資格証明がOracle WebLogic Serverで変更されると、Oracle Management Agentは、パフォーマンス・メトリックを取得できなくなります。その結果、ターゲットのメトリックはFusion Middleware Controlページに表示されず、パフォーマンス・グラフはレンダリングされません。
この障害を修正するために、Fusion Middleware Controlでエージェントの監視中のターゲットの監視資格証明を変更できます。
「ファーム」メニューから、「監視資格証明」を選択します。
「監視資格証明」ページが表示されます。
「エージェントの監視中のターゲット」をクリックします。
「エージェントの監視中のターゲット」ページが表示されます。
変更するターゲットの「構成」アイコンをクリックします。
「構成」ページで、「監視資格証明」フィールドを検索し、最低でもmonitoring
レベルの権限があるOracle WebLogic Serverのユーザー・アカウントの証明書と一致するように証明書を変更します。
ファームにおけるすべてのエージェントの監視中のターゲットのパフォーマンス・メトリックを使用できないが、エージェントの監視中のターゲットの監視資格証明が正しいことを検証済の場合、Fusion Middleware Controlと通信するためにOracle Management Agentが使用するURLを変更する必要がある場合があります。
この状況は、使用環境のバックアップを作成し、これを別のホストにリストアした場合、またはテスト環境を本番環境に移行した場合に発生する可能性があります。どちらの場合も、Oracle Management Agentを再びFusion Middleware Controlと通信できるようにするには、その前にOracle Management AgentのURLで必要なホスト名を変更する必要があります。
Oracle Management AgentのURLを変更するには:
「ファーム」メニューから、「監視資格証明」を選択します。
「監視資格証明」ページが表示されます。
「エージェントの監視中のターゲット」をクリックします。
「エージェントの監視中のターゲット」ページが表示されます。
このページに一覧表示されているエージェントの監視中のターゲットのいずれかの「構成」アイコンをクリックします。
Oracle Management AgentのURLを変更します。
デフォルトでは、Fusion Middleware ControlからOracle WebLogic Server管理コンソールにアクセスする場合、その接続は非SSL接続です。SSL接続を使用してOracle WebLogic Server管理コンソールにアクセスするには、SSLポートを使用して手動でアクセスする必要があります。または、セキュアな管理ポートを有効にできます。
管理チャネルに関する情報、およびチャネルの確立方法については、『Oracle Fusion Middleware Oracle WebLogic Serverサーバー環境の構成』のネットワーク・チャネルの理解に関する項を参照してください。
管理サーバー・ドメインとの通信のセキュア・モードを有効にし、その他すべての非セキュア・モードを無効にするには、次の明示的な手順を実行して、Oracle Management AgentによるFusion Middleware Controlのエージェントの監視中のターゲットの監視を有効にする必要がある場合があります。(エージェントの監視中のターゲットの詳細は、第J.3.1.1項を参照してください)。次の手順は、管理サーバーのインスタンスでデフォルトの自己署名証明書、またはOracle Management Agentが使用しているJVMのデフォルトのトラストストアで使用できない認証局(CA)を持つその他の署名付き証明書を使用している場合にのみ必要です。
この場合、次の手順に従います。
次のコマンドを使用して、Oracle Management Agentを停止します。
ORACLE_HOME/bin/emctl stop agent
証明書をOracle WebLogic Serverからエクスポートします。
JAVA_HOME/jdk/bin/keytool -export -alias demoidentity -file /tmp/wlcert -keystore MW_HOME/wlserver_10.3/server/lib/DemoIdentity.jks
プロンプトが表示されたら、パスワードを入力します。
証明書を使用してJDKのデフォルトのトラストストア(JAVA_HOME/jre/lib/security/cacerts)を更新します。(これはOracle Management Agentが使用するJDKです。)
keytool -import -alias demoidentity -trustcacerts -file /temp/wlcert -keystore JAVA_HOME/jre/lib/security/cacerts -storepass password
この証明書を信頼するかどうか質問されたら、yes
と入力します。
次のコマンドを使用して、Oracle Management Agentを起動します。
ORACLE_HOME/bin/emctl start agent
Fusion Middleware ControlとOracle WebLogic Server管理コンソール間のシングル・サインオン・メカニズムとしてWindowsのネイティブ認証(WNA)を使用する場合、次のファイルを変更する必要があります。
web.xml
weblogic.xml
これらのファイルは、em.earファイルに含まれます。em.earファイルを展開して各ファイルを編集してから、em.earファイルに再アーカイブします。次の手順を実行してください(フロントエンドがWindows上にあり、em.earファイルがUNIX上にあると仮定します)。
JAVA_HOME環境変数を設定します。例:
setenv JAVA_HOME /scratch/Oracle/Middleware/jrockit_160_05_R27.6.2-20
em.earが含まれるディレクトリに移動し、ファイルを展開します。例:
cd /scratch/Oracle/Middleware/user_projects/applications/domain_name JAVA_HOME/bin/jar xvf em.ear em.war JAVA_HOME/bin/jar xvf em.war WEB-INF/web.xml JAVA_HOME/bin/jar xvf em.war WEB-INF/weblogic.xml
web.xmlを編集し、最初のlogin-configブロックをコメントアウトし、WNAのlogin-configを非コメントアウトします。(どのブロックをコメント化または非コメント化するかはファイルに含まれています。)次に、ファイルの一部が次のように表示されます。
<!--<login-config> <auth-method>CLIENT-CERT</auth-method> </login-config> --> <!-- the following block is for Windows Native Authentication, if you are using WNA, do the following: 1. uncomment the following block 2. comment out the previous <login-config> section. 3. you also need to uncomment a block in weblogic.xml --> <login-config> <auth-method>CLIENT-CERT,FORM</auth-method> <form-login-config> <form-login-page>/faces/targetauth/emasLogin</form-login-page> <form-error-page>/login/LoginError.jsp</form-error-page> </form-login-config> </login-config> <security-constraint> . . . <security-role> <role-name>Monitor</role-name> </security-role>
weblogic.xmlを編集し、次のブロックを非コメント化します。(どのブロックを非コメントかするかはファイルに含まれています。)次に、ファイルの一部が次のように表示されます。
<!-- the following block is for Windows Native Authentication, if you are using WNA, uncomment the following block. --> <security-role-assignment> <role-name>Admin</role-name> <externally-defined/> </security-role-assignment> . . . <security-role-assignment> <role-name>Deployer</role-name> <externally-defined/> </security-role-assignment>
em.earファイルに再アーカイブします。例:
JAVA_HOME/bin/jar uvf em.war WEB-INF/web.xml JAVA_HOME/bin/jar uvf em.war WEB-INF/weblogic.xml JAVA_HOME/bin/jar uvf em.ear em.war
この項では、SSL構成を使用する場合の一般的な問題および解決策について説明します。内容は、次のとおりです。
暗号が明示的に構成されていない場合、11g リリース2 (11.1.2.2)の一部のコンポーネントでDH_Anon
(Diffie-Hellman匿名)暗号を含む、サポートされているすべてのSSL暗号が有効になることに注意してください。
この時点では、次のように暗号を設定することがわかっているコンポーネントはOracle HTTP Serverのみです。
DH_Anon
が希望でない場合、希望する暗号でコンポーネントを構成します。
JDK6では、keyCertSign
ビットを有効化しなくても、自己署名付き証明書にkeyUsage
拡張機能を含めることができます。これは、JDK7では拒否されます。
JDK7では、自己署名付きCA証明書を使用する場合は、keyUsage
拡張機能のkeyCertSign
ビットを設定する必要があります。そうしないと、接続が次のような例外により失敗します。
weblogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: IO Error: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
鍵使用目的の拡張機能は、証明書に設定されている鍵の使用目的(暗号用、署名用、証明書署名用など)を定義します。
準拠しているCAでは、公開鍵(その他の公開鍵証明書またはCRLでのデジタル署名の検証に使用される)が設定されている証明書にこの拡張機能を含める必要があります。
公開鍵証明書の署名の検証にサブジェクトの公開鍵が使用される場合は、keyCertSign
ビットがアサートされます。つまり、JDK7で自己署名付きCA証明書を生成するときには、keyUsage
のkeyCertSign
ビットがオンであることを確認する必要があります。
これは、たとえば次のような方法で達成できます。
ku:c=keyCertSignオプションを指定して自己署名付きJKSキーストアを作成し、
キーストアからの証明書をルート・ウォレット(SSL接続で使用される)に移行します。
この他の解決策は、My Oracle Support(http://support.oracle.com
)で公開されています。発生した障害の解決策が見つからない場合は、サービス・リクエストを発行してください。
第J.5.1項で説明するように、Remote Diagnostic Agentを使用することもできます。
関連項目: 『Oracle Fusion Middlewareリリース・ノート』(Oracle Technology Networkで参照できます) |
Remote Diagnostic Agent (RDA)は、ご使用の環境の全体像を提供するコマンド行診断ツールです。また、RDAでは、構成やセキュリティなど、様々な項目に関する推奨事項が提供されています。これは、ユーザーとOracleサポートの問題解決を支援します。
RDAは、できるだけ控えめであるように設計されており、システムを変更することはありません。必要に応じて、セキュリティ・フィルタが提供されます。
RDAの詳細は、次の場所にあるreadmeファイルを参照してください。
(UNIX) ORACLE_HOME/rda/README_Unix.txt (Windows) ORACLE_HOME\rda\README_Windows.txt