この章では、WebLogic診断フレームワーク(WLDF)のアプリケーション・モジュールのデプロイ方法について説明します。アプリケーションで使用できるWLDFコンポーネントはインストゥルメンテーションのみです(「アプリケーション・スコープのインストゥルメンテーションの構成」を参照)
アプリケーションに対するインストゥルメンテーションは、アプリケーション・スコープのリソースである診断アプリケーション・モジュールとして構成および管理します。構成はアプリケーションと共にデプロイする記述子ファイル内に永続化されます。このようにデプロイされる診断モジュールは、同梱のアプリケーションでのみ使用可能です。アプリケーション・スコープのリソースを使用することにより、アプリケーションは常に、必要なリソースへ確実にアクセスでき、アプリケーションを新しい環境にデプロイする処理が簡素化されます。
デプロイメント・プランを使用してアプリケーションをデプロイできます。デプロイメント・プランを使用すると、構成の動的な更新が可能になります。
注意:
インストゥルメンテーションをアプリケーションで使用できるようにするには、アプリケーションがデプロイされるサーバーでインストゥルメンテーションを有効にする必要があります。(サーバー・スコープ・インストゥルメンテーションは、サーバーの診断記述子の<instrumentation>要素で有効にしたり無効にしたりできます)。
この章には次の項が含まれます:
診断モジュールをアプリケーション・スコープ・リソースとしてデプロイするには、weblogic-diagnostics.xml
という記述子ファイルでモジュールを構成します。次に、アプリケーション・アーカイブがデプロイ済アプリケーションのARCHIVE_PATH
/META-INF
ディレクトリにある状態で、記述子ファイルをパッケージします。例:
C:\Oracle\Middleware\Oracle_Home\user_projects\applications\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へのアプリケーションのデプロイ』を参照してください。
診断アプリケーション・モジュールおよび診断システム・モジュールがデプロイされる方法には様々な方法があるため、再構成の方法や変更が行われる場合については、相違点があります。表15-1を参照してください。診断アプリケーション・モジュールの作業については、この項で説明します。診断システム・モジュールの作業の詳細は、「インストゥルメンテーションの構成」を参照してください。
表15-1 システム・モジュールとアプリケーション・モジュールの比較
モニター・タイプ | オブジェクトの動的な追加/削除 | コンソールでのオブジェクトの追加/削除 | JMXでのリモート変更 | JSR-88での変更(非リモート) | コンソールでの変更 |
---|---|---|---|---|---|
システム・モジュール |
はい |
はい |
はい |
いいえ |
可 - JMXから |
アプリケーション・モジュール |
可(ホットスワップ脚注 1が有効な場合) 不可(ホットスワップが有効でない場合: モジュールを再デプロイする必要があります) |
はい |
いいえ |
はい |
可 - プランから |
脚注 1
ホットスワップの詳細は、「インストゥルメンテーション構成を動的に制御するためのデプロイメント・プランの使用」を参照してください。
WebLogic Serverでは、Java EEデプロイメント仕様API (JSR-88)で指定されているように、デプロイメント・プランをサポートしています。デプロイメント・プランを使用すると、アプリケーションのビルド後に、そのアプリケーションのアーカイブに変更を加えることなく、構成を変更できます。WebLogic Serverにおけるデプロイメント・プランの使用の詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』の本番デプロイメントのためのアプリケーションの構成に関する項を参照してください。
デプロイメント・プランを使用せずにデプロイされたアプリケーションを再構成する場合は、アプリケーションをアンデプロイしてアーカイブを展開し、再構成して再びアーカイブしてから、再デプロイする必要があります。デプロイメント・プランを使用すると、アプリケーション・アーカイブを変更せずに、プランを更新するだけで、多くの構成オプションを動的に変更できます。
デプロイメント・プランを使用してアプリケーションをデプロイする前に、Javaホットスワップという機能を有効にしておくと(「Javaホットスワップの有効化」を参照)、アプリケーションを再デプロイせずに、すべてのインストゥルメンテーション設定を動的に更新できます。ホットスワップを有効にしていない場合、または、デプロイメント・プランを使用しない場合、一部のインストゥルメンテーション設定の変更では、再デプロイメントが必要になります。表15-2を参照してください。
表15-2 アプリケーション・インストゥルメンテーションの構成の変更が有効になる場合
使用するシナリオ ・ 設定 => | モニターの追加と削除 | アクションのアタッチとデタッチ | モニターの有効化と無効化 |
---|---|---|---|
デプロイメント・プランを使用してデプロイされるアプリケーション(ホットスワップが有効な場合) |
動的 |
動的 |
動的 |
デプロイメント・プランを使用してデプロイされるアプリケーション(ホットスワップが有効ではない場合) |
アプリケーションの再デプロイが必要脚注 2 |
動的 |
動的 |
デプロイメント・プランを使用せずにデプロイされるアプリケーション |
アプリケーションの再デプロイが必要 |
アプリケーションの再デプロイが必要 |
アプリケーションの再デプロイが必要 |
脚注 2
ホットスワップが有効になっていない場合、モニターを削除できますが、そのモニターは無効になるのみです。インストゥルメンテーション・コードはアプリケーション・コードにウィービングされたままになります。変更後のプランを使用しても、そのモニターは再び有効にはなりません。
デプロイメント・プランを使用すると、アプリケーションを再デプロイしなくても、構成要素を動的に更新できます。
<enabled>
<dye-filtering-enabled>
<dye-mask>
<action>
weblogic.PlanGeneratorツールを使用すると、初期状態のデプロイメント・プランを作成できます。またこのツールにはweblogic-diagnostics.xml
記述子の特定のプロパティを対話形式でオーバーライドする機能もあります。
PlanGeneratorツールは、選択したアプリケーションにあるすべてのJava EEデプロイメント記述子を検査し、アプリケーション用に外部リソースを構成する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コマンド・ライン・リファレンス」および「新しい環境にデプロイするためのアプリケーションのエクスポート」を参照してください。
例15-1に、weblogic.PlanGeneratorを使用して生成される簡単なデプロイメント・プランを示します。(読みやすくするため、一部の情報は削除されています)。このプランでは、Servlet_Before_Serviceモニターを有効にして、それをアクションDisplayArgumentsActionおよびStackDumpActionに加えています。
例15-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>
デプロイメント・プランで指定できる診断モニターとアクションのリストと説明については、「WLDFインストゥルメンテーション・ライブラリ」参照してください。
Javaホットスワップを有効にするには、次のコマンドライン・スイッチを使用してサーバーを起動します。
-javaagent:$WL_HOME/server/lib/diagnostics-agent.jar
デプロイメント・プランによって提供される動的な制御を利用するには、プランを使用してアプリケーションをデプロイする必要があります。
デプロイメントを制御するには、WebLogic Server管理コンソールやWebLogic Scripting Tool (WLST)などの標準のWebLogic Serverツールを使用できます。たとえば、次のWLSTコマンドでは、対応するデプロイメント・プランでアプリケーションをデプロイします。
wls:/mydomain/serverConfig> deploy('myApp', './myApp.ear', 'myserver', 'nostage', './plan.xml')
デプロイメント後に有効な診断モニター構成は、元の記述子と、プランから得られるオーバーライドされた属性値の組み合わせです。元の記述子に所定の名前のモニターが含まれず、プランでそのモニターの属性をオーバーライドした場合、そのモニターはアプリケーションで使用されるモニターのセットに追加されます。このように、アプリケーションが空のweblogic-diagnostics.xml
記述子と一緒にビルドされていれば、デプロイメント・プロセス中やその後で、アプリケーションのアーカイブを変更せずにアプリケーションに診断モニターを追加できます。
構成設定を変更するには、デプロイメント・プランを変更してから、ホットスワップが有効になっているかどうかに応じて、アプリケーションを更新または再デプロイします(「Javaホットスワップの有効化」を参照して、アプリケーションを更新するのみでよい場合と再デプロイが必要な場合を確認します)。更新または再デプロイを行うには、WebLogic Server管理コンソールや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')