Oracle® Fusion Middleware Oracle WebLogic Server診断フレームワークの構成と使い方 11g リリース1(10.3.5) B60994-03 |
|
前 |
次 |
アプリケーションで使用できるWebLogic診断フレームワーク(WLDF)コンポーネントはインストゥルメンテーションのみです。「アプリケーション・スコープのインストゥルメンテーションの構成」を参照してください
アプリケーションに対するインストゥルメンテーションは、アプリケーション・スコープのリソースである診断アプリケーション・モジュールとして構成および管理します。構成はアプリケーションと共にデプロイする記述子ファイル内に永続化されます。このようにデプロイされる診断モジュールは、同梱のアプリケーションでのみ使用可能です。アプリケーション・スコープのリソースを使用することにより、アプリケーションは常に、必要なリソースへ確実にアクセスでき、アプリケーションを新しい環境にデプロイする処理が簡素化されます。
デプロイメント・プランを使用してアプリケーションをデプロイできます。デプロイメント・プランを使用すると、構成の動的な更新が可能になります。
注意: インストゥルメンテーションをアプリケーションで使用できるようにするには、アプリケーションがデプロイされるサーバーでインストゥルメンテーションを有効にする必要があります。(サーバー・スコープ・インストゥルメンテーションは、サーバーの診断記述子の<instrumentation>要素で有効にしたり無効にしたりできます)。 |
次の項では、WLDFアプリケーション・モジュールのデプロイ方法について説明します。
診断モジュールをアプリケーション・スコープ・リソースとしてデプロイするには、weblogic-diagnostics.xmlという記述子ファイルでモジュールを構成します。次に、アプリケーション・アーカイブがデプロイ済みのアプリケーションのARCHIVE_PATH/META-INFディレクトリにある状態で、記述子ファイルをパッケージします。例:
D:\bea\wlserver_10.3\samples\server\medrec\dist\standalone\exploded\medrec\META-INF\weblogic-diagnostics.xml
診断モジュールは、展開形式でも、展開形式でないアーカイブでもデプロイできます。
注意: META-INFディレクトリにweblogic-diagnostics.xml記述子があるWAR、RARまたはEJBモジュールがEARアーカイブに含まれている場合、その記述子は無視されます。 |
デプロイメント制御用に用意された任意の標準WebLogic Serverツールを使用できます。このようなツールには、管理コンソールやWebLogic Scripting Tool (WLST)などがあります。
モジュールの作成およびアプリケーションのデプロイの方法の詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。
診断アプリケーション・モジュールおよび診断システム・モジュールがデプロイされる方法には様々な方法があるため、再構成の方法や変更が行われる場合については、相違点があります。表14-2を参照してください。診断アプリケーション・モジュールの作業については、この項で説明します。診断システム・モジュールの作業の詳細は、第11章「インストゥルメンテーションの構成」を参照してください。
表14-1 システム・モジュールとアプリケーション・モジュールの比較
モニター・タイプ | オブジェクトの動的な追加/削除 | コンソールでのオブジェクトの追加/削除 | JMXでのリモート変更 | JSR-88での変更(非リモート) | コンソールでの変更 |
---|---|---|---|---|---|
システム・モジュール |
はい |
はい |
はい |
いいえ |
可 - JMXから |
アプリケーション・モジュール |
可(ホット・スワップ脚注 1 が有効な場合) 不可(ホット・スワップが有効でない場合: モジュールを再デプロイする必要があります) |
はい |
いいえ |
はい |
可 - プランから |
脚注 1 ホット・スワップの詳細は、「インストゥルメンテーション構成を動的に制御するためのデプロイメント・プランの使用」を参照してください。
WebLogic Serverでは、J2EEデプロイメント仕様API (JSR-88)で指定されているように、デプロイメント・プランをサポートしています。デプロイメント・プランを使用すると、アプリケーションのビルド後に、そのアプリケーションのアーカイブに変更を加えることなく、構成を変更できます。WebLogic Serverにおけるデプロイメント・プランの使用の詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』の本番デプロイメントのためのアプリケーションの構成に関する項を参照してください。
デプロイメント・プランを使用せずにデプロイされたアプリケーションを再構成する場合は、アプリケーションをアンデプロイしてアーカイブを展開し、再構成して再びアーカイブしてから、再デプロイする必要があります。デプロイメント・プランを使用すると、アプリケーション・アーカイブを変更せずに、プランを更新するだけで、多くの構成オプションを動的に変更できます。
デプロイメント・プランを使用してアプリケーションをデプロイする前に、ホット・スワップという機能を有効にしておくと(「ホット・スワップ機能の有効化」を参照してください)、アプリケーションを再デプロイせずに、すべてのインストゥルメンテーション設定を動的に更新することができます。ホット・スワップを有効にしていない場合、または、デプロイメント・プランを使用しない場合、一部のインストゥルメンテーション設定の変更では、再デプロイメントが必要になります。表14-2を参照してください。
表14-2 アプリケーション・インストゥルメンテーションの構成の変更が有効になる場合
使用するシナリオ ・ 設定 => | モニターの追加と削除 | アクションのアタッチとデタッチ | モニターの有効化と無効化 |
---|---|---|---|
デプロイメント・プランを使用してデプロイされるアプリケーション(ホット・スワップが有効な場合) |
動的 |
動的 |
動的 |
デプロイメント・プランを使用してデプロイされるアプリケーション(ホット・スワップが有効でない場合) |
アプリケーションの再デプロイが必要脚注 1 |
動的 |
動的 |
デプロイメント・プランを使用せずにデプロイされるアプリケーション |
アプリケーションの再デプロイが必要 |
アプリケーションの再デプロイが必要 |
アプリケーションの再デプロイが必要 |
脚注 1 ホット・スワップが有効になっていない場合、モニターを「削除」することはできますが、そのモニターは無効になるだけです。インストゥルメンテーション・コードはアプリケーション・コードにウィービングされたままになります。変更後のプランを使用しても、そのモニターは再び有効にはなりません。
デプロイメント・プランを使用すると、アプリケーションを再デプロイしなくても、構成要素を動的に更新できます。
<enabled>
<dye-filtering-enabled>
<dye-mask>
<action>
デプロイメント・プランを作成および使用する一般的なプロセスは次のとおりです。
アプリケーションに対して整形式のweblogic-diagnostics.xml記述子ファイルを作成します。
空の記述子を作成することをお薦めします。そうすることで、構成を柔軟に動的に変更することができます。元の記述子ファイル内にモニターを作成し、デプロイメント・プランを使用してその設定をオーバーライドすることができます。ただし、再デプロイしないとモニターを完全には削除できません。デプロイメント・プランを使用して空の記述子にモニターを追加した場合、そのモニターはすべて削除できます。診断アプリケーション・モジュールの構成については、「アプリケーション・スコープのインストゥルメンテーションの構成」を参照してください。
診断モジュールはdiagnostics.xsdスキーマに準拠しています。このスキーマは、http://xmlns.oracle.com/weblogic/weblogic-diagnostics/1.0/weblogic-diagnostics.xsd
で参照できます。
該当するアーカイブの最上位のMETA-INFディレクトリに、記述子ファイルweblogic-diagnostics.xmlを置きます。
たとえば、weblogic.PlanGeneratorを使用して、デプロイメント・プランを作成します。「weblogic.PlanGeneratorによるデプロイメント・プランの作成」を参照してください。
サーバーを起動します。必要に応じて「ホット・スワップ」機能を有効にします。「ホット・スワップ機能の有効化」を参照してください。
デプロイメント・プランを使用してアプリケーションをデプロイします。「デプロイメント・プランによるアプリケーションのデプロイ」を参照してください。
必要な場合は、プランを編集し、そのプランを使用してアプリケーションを更新します。「変更したプランによるアプリケーションの更新」を参照してください。
weblogic.PlanGeneratorツールを使用すると、初期状態のデプロイメント・プランを作成できます。またこのツールにはweblogic-diagnostics.xml記述子の特定のプロパティを対話形式でオーバーライドする機能もあります。
PlanGeneratorツールは、選択したアプリケーションにあるすべてのJ2EEデプロイメント記述子を検査し、アプリケーション用に外部リソースを構成するWebLogic Serverデプロイメント・プロパティのうち、関連するものに対して、変数部分が指定されていないデプロイメント・プランを作成します。
プランを作成するには、次の構文を使用します。
java weblogic.PlanGenerator -plan output-plan.xml [options] application-path
例:
java weblogic.PlanGenerator -plan foo.plan -dynamics /test/apps/mywar
注意: -dynamicsオプションは、動的に更新できるオプションのみを含めてプランを生成することを指定します。 |
デプロイメント・プランの作成および使用の詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』の本番デプロイメントのためのアプリケーションの構成に関する項を参照してください。
PlanGeneratorの使用方法の詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』のweblogic.PlanGeneratorコマンド・ライン・リファレンスおよび新しい環境にデプロイメントするためのアプリケーションのエクスポートに関する項を参照してください。
例14-1では、weblogic.PlanGeneratorを使用して生成される簡単なデプロイメント・プランを示します。(読みやすくするため、一部の情報は削除されています)。このプランでは、Servlet_Before_Serviceモニターを有効にして、それをアクションDisplayArgumentsActionおよびStackDumpActionに加えています。
例14-1 サンプル・デプロイメント・プラン
<?xml version='1.0' encoding='UTF-8'?> <deployment-plan xmlns="http://xmlns.oracle.com/weblogic/weblogic-diagnostics" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" global-variables="false"> <application-name>jsp_expr_root</application-name> <variable-definition> <!-- Add two additional actions to Servlet_Before_Service monitor --> <variable> <name>WLDFInstrumentationMonitor_Servlet_Before_Service_Actions_113050559713922</name> <value>"DisplayArgumentsAction","StackDumpAction"</value> </variable> <-- Enable the Servlet_Before_Service monitor --> <variable> <name>WLDFInstrumentationMonitor_Servlet_Before_Service_Enabled_113050559713927</name> <value>true</value> </variable> </variable-definition> <module-override> <module-name>jspExpressionWar</module-name> <module-type>war</module-type> <module-descriptor external="false"> <root-element>weblogic-web-app</root-element> <uri>WEB-INF/weblogic.xml</uri> </module-descriptor> <module-descriptor external="false"> <root-element>web-app</root-element> <uri>WEB-INF/web.xml</uri> </module-descriptor> <module-descriptor external="false"> <root-element>wldf-resource</root-element> <uri>META-INF/weblogic-diagnostics.xml</uri> <variable-assignment> <name>WLDFInstrumentationMonitor_Servlet_Before_Service_Actions_113050559713922</name> <xpath>/wldf-resource/instrumentation/wldf-instrumentation-monitor/[name="Servlet_Before_Service"]/action</xpath> </variable-assignment> <variable-assignment> <name>WLDFInstrumentationMonitor_Servlet_Before_Service_Enabled_113050559713927</name> <xpath>/wldf-resource/instrumentation/wldf-instrumentation-monitor/[name="Servlet_Before_Service"]/enabled</xpath> </variable-assignment> </module-descriptor> </module-override> <config-root xsi:nil="true"></config-root> </deployment-plan>
デプロイメント・プランで指定できる診断モニターとアクションのリストと説明については、付録B「WLDFインストゥルメンテーション・ライブラリ」を参照してください。
ホット・スワップ機能を有効にするには、以下のコマンド・ライン・スイッチを使用してサーバーを起動します。
-javaagent:$WL_HOME/server/lib/diagnostics-agent.jar
デプロイメント・プランによって提供される動的な制御を利用するには、プランを使用してアプリケーションをデプロイする必要があります。
デプロイメントを制御するには、管理コンソールやWebLogic Scripting Tool (WLST)などの標準のWebLogic Serverツールを使用できます。たとえば、次のWLSTコマンドでは、対応するデプロイメント・プランでアプリケーションをデプロイします。
wls:/mydomain/serverConfig> deploy('myApp', './myApp.ear', 'myserver', 'nostage', './plan.xml')
デプロイメント後に有効な診断モニター構成は、元の記述子と、プランから得られるオーバーライドされた属性値の組み合わせです。元の記述子に所定の名前のモニターが含まれず、プランでそのモニターの属性をオーバーライドした場合、そのモニターはアプリケーションで使用されるモニターのセットに追加されます。このように、アプリケーションが空のweblogic-diagnostics.xml記述子と一緒にビルドされていれば、デプロイメント・プロセス中やその後で、アプリケーションのアーカイブを変更せずにアプリケーションに診断モニターを追加できます。
構成設定を変更するには、デプロイメント・プランを変更してから、ホット・スワップが有効になっているかどうかに応じて、アプリケーションを更新または再デプロイします(表14-2を参照して、アプリケーションを更新するのみでよい場合と再デプロイが必要な場合を確認します)。更新または再デプロイを行うには、管理コンソールやWebLogic Scripting Tool (WLST)などの標準のWebLogic Serverツールを使用できます。
ホット・スワップを有効にした場合は、プランを使用してアプリケーションを更新すると、変更後のプランの値でアプリケーションの構成を更新できます。たとえば、以下のWLSTコマンドは、プランを使用してアプリケーションを更新します。
wls:/mydomain/serverConfig> updateApplication('BigApp', 'c:/myapps/BigApp/newPlan/plan.xml', stageMode='STAGE', testMode='false')
ホット・スワップを有効にしなかった場合、特定の変更を有効にするには、アプリケーションを再デプロイする必要があります。たとえば、以下のWLSTコマンドは、プランを使用してアプリケーションを再デプロイします。
wls:/mydomain/serverConfig> redeploy('myApp' 'c:/myapps/plan.xml')