ナビゲーションをスキップ

WebLogic 診断フレームワークのコンフィグレーションと使い方

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

インスツルメンテーションのコンフィグレーション

WebLogic 診断フレームワーク (WebLogic Diagnostic Framework : WLDF) のインスツルメンテーション コンポーネントは、BEA WebLogic Server® インスタンスおよびそのサーバ インスタンスで実行中のアプリケーションに診断コードを追加するためのメカニズムを提供します。WLDF のインスツルメンテーションで主要な機能は次のとおりです。

WLDF には、あらかじめ定義された診断モニタと診断アクションのライブラリが用意されています。また、アプリケーション スコープのカスタム モニタを作成し、診断コードが挿入されるアプリケーション内の位置をユーザが決めることもできます。

インスツルメンテーションについては、以下の節で説明します。

 


概念と用語

この節では、インスツルメンテーションの概念と用語について説明します。

インスツルメンテーションのスコープ

実行可能なインスツルメンテーション サービスには、システム レベル (サーバおよびクラスタ) のものとアプリケーション レベルのものがあります。 概念、サービス、コンフィグレーション オプション、および実装機能の多くは両者とも同じです。ただし、相違点もいくつかあります。それらについて、このマニュアルで説明します。「サーバ スコープ インスツルメンテーション」は、WebLogic Server インスタンスおよびクラスタ固有のインスツルメンテーションのコンフィグレーションと機能を指し、「アプリケーション スコープ インスツルメンテーション」は、WebLogic サーバにデプロイされているアプリケーション固有のコンフィグレーションと機能を指します。スコープは各モニタに組み込まれており、ユーザがモニタのスコープを変更することはできません。

コンフィグレーションとデプロイメント

サーバまたはクラスタ向けのサーバ スコープ インスツルメンテーションは、診断モジュールの一部として、DOMAIN_NAME/config/diagnostics ディレクトリにある XML コンフィグレーション ファイルでコンフィグレーションおよびデプロイされ、config.xml からリンクされています。

アプリケーション スコープ インスツルメンテーションも、診断モジュールとしてコンフィグレーションおよびデプロイされます。ただし、アプリケーション スコープの場合は、アプリケーション アーカイブでパッケージ化された weblogic-diagnostics.xml という XML コンフィグレーション ファイルを使用します。

ジョインポイント、ポイントカット、診断ロケーション

インスツルメンテーション用コードは、サーバおよびアプリケーションのコード内の特定の場所に挿入されます。この特定の場所を表すために、以下の用語が使用されています。

診断モニタのタイプ

診断モニタは、そのスコープと種類によって分類されます。スコープは、サーバ スコープかアプリケーション スコープのどちらかです。種類は、モニタのポイントカット、診断場所、およびアクションによって決まります。たとえば、Connector_After_Inbound はアプリケーション スコープの代理モニタです。このモニタは、着信接続を処理するメソッドの出口 (つまり、after) で診断アクションをトリガするために使用できます。

インスツルメンテーション診断モニタには、以下に示す 3 種類があります。

表 9-1 に、各種類のモニタの違いを簡単に示します。

表 9-1 診断モニタのタイプ

モニタ タイプ

スコープ (有効範囲)

ポイントカット

診断ロケーション

アクション

標準モニタ

サーバ

固定

固定

固定

代理モニタ

サーバまたはアプリケーション

固定

固定

コンフィグレーション可能

カスタム モニタ

アプリケーション

コンフィグレーション可能

コンフィグレーション可能

コンフィグレーション可能

診断アクション

診断アクションは、関連する代理モニタまたはカスタム モニタに対応する診断コードを実行します (標準モニタの場合、アクションはあらかじめ定義されています)。代理モニタまたはカスタム モニタが何らかの意味のある処理を行うには、モニタに対して少なくとも 1 つのアクションをコンフィグレーションする必要があります。

WLDF 診断ライブラリでは、以下のアクションを利用できます。モニタのコンフィグレーション時に、このアクション名のいずれかを <action> 要素で指定すると、そのアクションをモニタにアタッチできます。

アクションは、モニタに正しく対応している必要があります。たとえば、TraceElapsedTime アクションは、診断ロケーションの種類が around のカスタム モニタ、または代理モニタで使用できます。詳細については、「WLDF インスツルメンテーション ライブラリ」を参照してください。

モニタに対して「仕分けマスク」を設定すると、診断アクションがトリガされるタイミングを制限できます。このマスクによって、診断コンテキストのどの仕分けフラグがアクションをトリガするかが決まります。モニタの仕分けマスクの設定については、「<wldf-instrumentation-monitor> の XML 要素」を参照してください。

注意 : 診断コンテキスト、仕分けの注入、および仕分けフィルタについては、「診断コンテキストのコンフィグレーション」で説明します。

 


インスツルメンテーション コンフィグレーションの基本

この節では、以下のトピックを取り上げます。

インスツルメンテーション コンフィグレーション ファイルについて

インスツルメンテーションは、診断記述子の一部として XML コンフィグレーション ファイルでコンフィグレーションされます。このファイルの名前と格納場所は、システムレベル (サーバ スコープ) のインスツルメンテーションを実装しているか、アプリケーション レベル (アプリケーション スコープ) のインスツルメンテーションを実装しているかによって異なります。

診断 XML スキーマは以下の場所にあります。

  http://www.bea.com/ns/weblogic/90/diagnostics.xsd

ドキュメントについては、『WebLogic Server Diagnostics Configuration Schema Referenceを参照してください。

各診断記述子ファイルは、以下の行で始まる必要があります。

<wldf-resource xmlns="http://www.bea.com/ns/weblogic/90/diagnostics" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

WLDF リソースのコンフィグレーションの概要については、「WLDF コンフィグレーションについて」を参照してください。

インスツルメンテーションに使用する XML 要素

この節では、記述子のコード フラグメント、インスツルメンテーションのコンフィグレーションに使用する XML 要素をまとめた表、および各インスツルメンテーション診断モニタについて簡単に説明した表を示します。

<Instrumentation> の XML 要素

表 9-2 に、<instrumentation> の各要素を示します。以下のコンフィグレーション フラグメントでは、それらの要素の使用方法を示します。

<instrumentation>
<enabled>true</enabled>
<!-- 以下の <include> 要素は
アプリケーション スコープのモニタにのみ適用される -->
<include>foo.bar.com.*</include>
</instrumentation>

表 9-2 <Instrumentation> の XML 要素

要素

解説

<instrumentation>

インスツルメンテーション コンフィグレーションを開始する要素。

<enabled>

true の場合、インスツルメンテーションは有効。false の場合、インスツルメントされたコードは、このインスツルメンテーション スコープのクラスに挿入されておらず、このスコープ内のすべての診断モニタは無効。

そのスコープ内でインスツルメンテーションを使用するには、サーバ (アプリケーション) レベルでインスツルメンテーションを有効にする必要がある。

<include>

インスツルメントされたコードを挿入できるクラスのリストを指定する要素 (省略可能)。ワイルドカード (*) を使用可能。複数の <include> 要素を指定できる。

アプリケーション スコープのインスツルメンテーションの場合にのみ有効。<include> または <exclude> パターンを指定すると、アプリケーション スコープ全体に適用される。クラスがロードされると、インスツルメンテーション コードを挿入する前に、<include> または <exclude> のパターン チェックに成功する必要があります。クラスが <include> または <exclude> のパターン チェックに成功した場合でも、インスツルメントされるかどうかは、コンフィグレーション記述子で定義されている診断モニタによって決まる。ライブラリ内にあるアプリケーション スコープの代理モニタには、あらかじめ定義されている独自のクラスおよびポイントカットがある。カスタム モニタでは、独自のポイントカット式を指定する。そのため、<include> または <exclude> のパターン チェックに成功しても、クラスはインスツルメントされない場合がある。

パフォーマンスに関する注意 : インスツルメンテーションは、クラスのロード時にアプリケーションに挿入される。サイズの大きなアプリケーションを頻繁にロードする環境では、<include> または <exclude> 要素をうまく使えば、利便性の向上を期待できる。小さなアプリケーションや、中規模または大規模のアプリケーションでも頻繁にはロードしない場合は、この要素を無視しても構わない。

<exclude>

インスツルメントされたコードを挿入できないクラスのリストを指定する要素 (省略可能)。ワイルドカード (*) を使用可能。複数の <exclude> 要素を指定できる。

アプリケーション スコープのインスツルメンテーションの場合にのみ有効。<include> の説明を参照。

<wldf-instrumentation-monitor> の XML 要素

表 9-3 に、<wldf-instrumentation-monitor> の各要素を示します。以下のコンフィグレーション フラグメントでは、それらの要素の使用方法を示します。フラグメントでは、アプリケーション スコープの代理モニタおよびカスタム モニタをコンフィグレーションします。サーバ スコープのインスツルメンテーションの場合は、アプリケーション スコープのモニタをサーバ スコープのモニタに置き換えれば、このフラグメントを変更できます。

<instrumentation>
<enabled>true</enabled>
<wldf-instrumentation-monitor>
<name>Servlet_Before_Service</name>
<enabled>true</enabled>
<dye-mask>USER1</dye-mask>
<dye-filtering-enabled>true</dye-filtering-enabled>
<action>TraceAction</action>
</wldf-instrumentation-monitor>
<wldf-instrumentation-monitor>
<name>MyCustomMonitor</name>
<enabled>true</enabled>
<action>TraceAction</action>
<location-type>before</location-type>
<pointcut>call( * com.foo.bar.* get*(...));</pointcut>
</wldf-instrumentation-monitor>
</instrumentation>

ここでは、Servlet_Before_Service モニタは仕分けマスクを設定しており、仕分けフィルタが有効になっています。これは、インスツルメンテーションがサーバ レベルで有効になっており、DyeInjection モニタが有効化されて適切にコンフィグレーションされている場合にのみ役に立ちます。DyeInjection モニタのコンフィグレーションについては、「診断コンテキストのコンフィグレーション」を参照してください。

表 9-3 <wldf-instrumentation-monitor> の XML 要素

要素

解説

<wldf-instrumentation-monitor>

診断モニタのコンフィグレーションを開始する要素。

<enabled>

true の場合、モニタは有効。false の場合、モニタは無効。各モニタを個別に有効または無効にできる。

<name>

モニタの名前。標準モニタと代理モニタの場合は、「WLDF インスツルメンテーション ライブラリ」であらかじめ定義されているモニタの名前を使用する。カスタム モニタの場合は、モニタを識別する任意の文字列を使用可能。

<description>

モニタを説明する要素 (省略可能)。

<action>

代理モニタとカスタム モニタに適用される要素 (省略可能)。アクションを 1 つ以上指定しない場合、モニタは情報を生成しない。複数の <action> 要素を指定できる。アクションは、モニタのタイプに対応している必要がある。代理モニタとカスタム モニタ用にあらかじめ定義されているアクションのリストについては、「WLDF インスツルメンテーション ライブラリ」を参照。

<dye-filtering-enabled>

省略可能な要素。true の場合、仕分けフィルタが有効になる。false の場合、仕分けフィルタは無効。仕分けフィルタがサーバ レベルで無効の場合、個別のモニタに対して仕分けフィルタを有効にしても、フィルタ処理は実行されない。

<dye-mask>

省略可能な要素。仕分けフィルタが有効の場合、仕分けマスクによって、アクションを実行するかどうかが決まる。仕分けおよび仕分けフィルタの詳細については、「診断コンテキストのコンフィグレーション」を参照。

<properties>

省略可能な要素。仕分けフラグ用に name=value のペアを設定する。

DyeInjection モニタの場合にのみ有効。他のモニタでは無視される。

<location-type>

beforeafteraround のいずれかの値を持つ要素 (省略可能)。この要素によって、ポイントカットを基準にアクションがトリガされるタイミング (ポイントカットの前でトリガされるか、ポイントカットの後でトリガされるか、ポイントカットの前後でトリガされるか) が決まる。

カスタム モニタの場合にのみ有効。標準モニタおよび代理モニタでは、この値はあらかじめ定義されている。カスタム モニタでは、診断ロケーションの種類とポイントカットを定義する必要がある。

<pointcut>

省略可能な要素。ポイントカット要素には、診断コードが挿入されるジョインポイントを定義する式が格納される。

カスタム モニタの場合にのみ有効。標準モニタおよび代理モニタでは、この値はあらかじめ定義されている。カスタム モニタでは、診断ロケーションの種類とポイントカットを定義する必要がある。

<dye-filtering-enabled><dye-mask> については、さらに以下の情報があります。

したがって、仕分けフィルタのメカニズムを使用すると、モニタは特定の要求に対してのみ診断アクションを実行でき、それによって他の要求の処理が遅くなることはありません。診断コンテキストおよび仕分けベクトルの詳細については、「診断コンテキストのコンフィグレーション」を参照してください。

各モニタ タイプへの <wldf-instrumentation-monitor> の XML 要素のマッピング

表 9-4 に、どの <wldf-instrumentation-monitor> 要素がどのモニタに対応しているかを示します。

表 9-4 各モニタ タイプへのインスツルメンテーション XML 要素のマッピング

要素

標準

代理

カスタム

<wldf-instrumentation-monitor>

X

X

X

<name>

X

X

X

<description>

X

X

X

<enabled>

X

X

X

<action>


X

X

<dye-filtering-enabled>


X

X

<dye-mask>


X

X

<properties>

X1



<location-type>



X

<pointcut>



X


1. DyeInjection モニタが仕分けフラグ用に name=value のペアを設定する場合にのみ使用。

 


サーバ スコープのインスツルメンテーションのコンフィグレーション

サーバ レベルでインスツルメンテーションを有効にし、サーバ スコープのモニタをコンフィグレーションするには、以下の手順を実行します。

  1. インスツルメンテーション情報でコンフィグレーションする診断記述子ファイルの数を決めます。
  2. 1 つのドメインで複数の診断記述子ファイルを使用できますが、サーバ (またはクラスタ) ごとにデプロイできる診断記述子ファイルは一度に 1 つだけです。複数のファイルを作成する理由は、柔軟性です。たとえば、DOMAIN_NAME/config/diagnostics ディレクトリに 5 つの診断記述子ファイルを保存し、ファイルごとに異なるインスツルメンテーション (に加え、おそらくハーベスタおよび監視と通知) のコンフィグレーションを格納できます。次に、特定の状況でどのモニタをアクティブにするかに基づいて、サーバにファイルをデプロイします。

  3. どのサーバ スコープ モニタをコンフィグレーションに含めるかを決めます。
  4. コンフィグレーション ファイル (複数可) を作成します。
  5. デプロイメント記述子ファイルを検証してデプロイします。サーバ スコープのインスツルメンテーションの場合は、サーバの実行中にモニタを追加および削除したり、モニタを有効または無効にしたりできます。

コード リスト 9-1 に、サーバ スコープ インスツルメンテーションのコンフィグレーション ファイルのサンプルを示します。このサンプルでは、インスツルメンテーションを有効にし、DyeInjection 標準モニタおよび Connector_Before_Work 代理モニタをコンフィグレーションします。1 つの <instrumentation> 要素に、モジュールのすべてのインスツルメンテーションのコンフィグレーションが格納されます。各診断モニタは、個別の <wldf-instrumentation-monitor> 要素で定義されます。

コード リスト 9-1 サーバ スコープ インスツルメンテーションの記述子ファイルのサンプル

<wldf-resource xmlns="http://www.bea.com/ns/weblogic/90/diagnostics" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.bea.com/ns/weblogic/90/diagnostics.xsd">
  <instrumentation>
<enabled>true</enabled>
<wldf-instrumentation-monitor>
<name>DyeInjection</name>
<description>Inject USER1 and ADDR1 dyes</description>
<enabled>true</enabled>
<properties>USER1=weblogic
ADDR1=127.0.0.1</properties>
</wldf-instrumentation-monitor>
<wldf-instrumentation-monitor>
<name>Connector_Before_Work</name>
<enabled>true</enabled>
<action>TraceAction</action>
<dye-filtering-enabled>true</dye-filtering-enabled>
<dye-mask>USER1</dye-mask>
</wldf-instrumentation-monitor>
</instrumentation>
</wldf-resource>

 


アプリケーション スコープのインスツルメンテーションのコンフィグレーション

アプリケーション レベルでは、WLDF のインスツルメンテーションは、デプロイ可能なモジュールとしてコンフィグレーションされます。このモジュールは、アプリケーションの一部としてデプロイされます。

以下の節では、アプリケーション スコープのインスツルメンテーションのコンフィグレーションで必要な情報について説明します。

システム スコープのインスツルメンテーションとアプリケーション スコープのインスツルメンテーションの比較

アプリケーションのインスツルメントは、システム レベルでのインスツルメントと似ていますが、以下の点が違います。

アプリケーション スコープ インスツルメンテーションの XML 記述子は、サーバ スコープ インスツルメンテーションの場合と同じ方法で定義されます。WLDF インスツルメンテーション ライブラリで使用可能な代理モニタと診断アクションを使用すると、アプリケーション専用のインスツルメンテーションをコンフィグレーションできます。ユーザ独自のカスタム モニタを作成できますが、カスタム モニタにアタッチする診断アクションは、インスツルメンテーション ライブラリから指定する必要があります。

アプリケーションのインスツルメントに必要な手順の概要

アプリケーションの診断モニタを実装するには、以下の手順を実行します。

代理モニタの記述子ファイルの作成

次に、アプリケーション スコープの代理モニタ用に整形された META-INF/weblogic-diagnostics.xml ファイルの例を示します。

<wldf-resource xmlns="http://www.bea.com/ns/weblogic/90/diagnostics" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.bea.com/ns/weblogic/90/diagnostics.xsd">
   <instrumentation>
<enabled>true</enabled>
<wldf-instrumentation-monitor>
<name>Servlet_Before_Service</name>
<enabled>true</enabled>
<dye-mask>USER1</dye-mask>
<dye-filtering-enabled>true</dye-filtering-enabled>
<action>TraceAction</action>
</wldf-instrumentation-monitor>
</instrumentation>
</wldf-resource>

Servlet_Before_Service モニタは、WLDF モニタ ライブラリから選択したアプリケーション スコープのモニタです。これは、複数のサーブレット/jsp メソッドのメソッドの入り口にジョインポイントを設定するポイントカットでハードコード化されています。アプリケーションは仕分けフィルタを有効にし、仕分けマスクに USER1 フラグを設定しているので、TraceAction アクションは、アプリケーションに渡される診断コンテキスト内の仕分けベクトルに USER1 フラグ セットがある場合にのみ呼び出されます (仕分けベクトルは、DyeInjection モニタを介してシステム レベルで設定されます)。したがって、このアプリケーションの Servlet_Before_Service モニタは、仕分けベクトルを確認し、USER1 フラグ セットを見つけるまで、基本的に何も行いません。このフィルタ処理を実行すれば、生成される診断データの量を減らし、その時点で管理者にとって意味のあるデータのみを生成することができます。

カスタム モニタの記述子ファイルの作成

次に、カスタム モニタ用に整形された META-INF/weblogic-diagnostics.xml ファイルの例を示します。

<wldf-resource xmlns="http://www.bea.com/ns/weblogic/90/diagnostics" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.bea.com/ns/weblogic/90/diagnostics.xsd">
 <instrumentation>
<enabled>true</enabled>
<wldf-instrumentation-monitor>
<name>MyCustomMonitor</name>
<enabled>true</enabled>
<action>TraceAction</action>
<location-type>before</location-type>
<pointcut>call( * com.foo.bar.* get* (...));</pointcut>
</wldf-instrumentation-monitor>
</instrumentation>
</wldf-resource>

カスタム モニタの場合、<name> は、開発者が指定した任意の文字列です。このモニタはカスタムなので、アクションの呼び出し用にあらかじめ定義された診断ロケーションはありません。記述子ファイルでは、診断ロケーションの種類とポイントカット式を定義する必要があります。この例では、TraceActionc アクションは、ポイントカット式で定義されたメソッドが呼び出される前 (<location-type>before</location-type) に呼び出されます。この例のポイントカット式は、以下のように渡されます (ワイルドカードの使い方に注意してください)。

ポイントカット式

解説

call( * com.foo.bar.* get* (...))

call( ) : ジョインポイントがこのポイントカット式の残りで定義されているメソッドが呼び出されたときに、定義されたアクションをトリガする。

call( * com.foo.bar.* get* (...))

*: 戻り値。ワイルドカードは、メソッドの戻り値の型を問わないことを示す。

call( * com.foo.bar.* get* (...))

com.foo.bar.*: com.foo.bar クラスとそのパッケージのメソッドが当てはまる。

call( * com.foo.bar.* get* (...))

get* : get という文字列で始まる任意のメソッドが当てはまる。

call( * com.foo.bar.* get* (...))

(...) : 省略記号は、メソッドで指定できる引数の数に制限がないことを示す。

したがって、このポイントカット式は、パッケージ com.foo.bar とそのサブパッケージ内にあるすべてのクラスの get*() を一致対象にします。メソッドは、void を含む任意の型の値を返すことができます。また、任意の型の引数を、数に制限なく持つことができます。インスツルメンテーション コードは、これらのメソッドの前に挿入され、そのメソッドが呼び出される直前に、TraceAction アクションが呼び出されます。

ポイントカットの定義に使用する文法の詳細については、「カスタム モニタのポイントカットの定義」を参照してください。

カスタム モニタのポイントカットの定義

カスタム モニタでは、診断アクションの呼び出し場所を指定するポイントカット式をユーザが作成するので、代理モニタよりも柔軟な操作が可能です。代理モニタの場合は、アクション ライブラリからアクションを選択する必要があります。

ジョインポイントは、精密に定義された、プログラム内の固有の位置です。ポイントカットは、ジョインポイントのセットを指定する式です。この節では、AspectJ ポイントカット構文の一部を使用して、ポイントカットの式がどのように定義されるかについて説明します。

カスタム モニタでは 2 種類のポイントカットを指定できます。

非公式な文法は以下のとおりです。

<pointcut>  ::=  <execution-pointcut> | <callsite-pointcut>
<execution-pointcut> ::= execution ( <access-type> <joinpoint-signature> )
<callsite-pointcut> ::= call ( <joinpoint-signature> )
<joinpoint-signature> ::= <method-signature>
<method-signature> ::= <return-type> <class-type>.<method-name> ( <parameter-list> )
<return-type> ::= <class-type> | <primitive-type>
<parameter-list> ::= <parameter-type> (, <parameter-type>) *
<parameter-type> ::= <class-type> | <primitive-type> | <elepsis>
<class-type> ::= (<use-class-heirarchy>) ?<class-or-interface-name-pattern>
<use-class-heirarchy> ::= '+'
<elepsis> ::= '...'

以下の規則が適用されます。

たとえば、以下のポイントカットは、パッケージ com.foo.bar とそのサブパッケージ内にあるすべてのクラスの、初期化された全パブリック メソッドのメソッド実行を一致対象にします。初期化されたメソッドは、void を含む任意の型の値を返すことができます。また、任意の型の引数を、数に制限なく持つことができます。

execution(public * com.foo.bar.* initialize(...))

以下のポイントカットは、com.foo.bar.MyInterface インタフェース (または、たまたまクラスだった場合はサブクラス) を直接または間接的に実装するすべてのクラスにあるメソッド呼び出し (呼び出しサイト) を一致対象にします。名前が get で始まり、int 値を返すパブリック メソッドが対象になります。また、メソッドは、java.lang.String 型の引数 1 つを受け付けるものでなければなりません。

call(int +com.foo.bar.MyInterface get*(java.lang.String))

以下の例では、ブール演算子を使用してポイントカット式ツリーを構築する方法を示します。

call(void com.foo.bar.* set*(java.lang.String)) OR
call( * com.foo.bar.* get*())

以下の例では、前の式ツリーが、コンフィグレーション ファイルでどのように <pointcut> 要素として変換されるかを示します。

<pointcut>call(void com.foo.bar.* set*(java.lang.String)) OR
call( * com.foo.bar.* get*())</pointcut>

アプリケーション診断記述子のデプロイ

アプリケーションが適切な形式の META-INF/weblogic-diagnostics.xml 診断記述子ファイルでデプロイされた場合、インスツルメンテーション コンポーネントは、適合するアプリケーション クラスがロードされたときに、自動的に診断インスツルメンテーション コードをそのクラスに挿入します。

この記述子はアプリケーションの ear アーカイブ内に指定することも、warrarejb などのスタンドアロン モジュール内に指定することもできます。また、展開形式のアーカイブにも展開形式でないアーカイブにも指定できます。

注意 : アプリケーションの ear アーカイブに warrar、または ejb モジュールが含まれ、それらの META-INF ディレクトリに weblogic-diagnostics.xml 記述子がある場合、そのような記述子は無視されます。

デプロイメント制御用に用意された任意の標準 WebLogic Server ツールを使用できます。こうしたツールには、Administration Console や WebLogic Scripting Tool (WLST) などがあります。

weblogic.PlanGenerator によるデプロイメント プランの作成

weblogic.PlanGenerator ツールを使用すると、初期状態のデプロイメント プランを作成できます。またこのツールには weblogic-diagnostics.xml 記述子の特定のプロパティを対話形式でオーバーライドする機能もあります。たとえば、プランを作成するには、次のように指定します。

  java weblogic.PlanGenerator -root c:\exportapps\myApplication

PlanGenerator ツールは、選択したアプリケーションにあるすべての J2EE デプロイメント記述子を確認し、アプリケーション用に外部リソースをコンフィグレーションする WebLogic Server デプロイメント プロパティのうち、関連するものに対して、変数部分が指定されていないデプロイメント プランを作成します。

デプロイメント プランの作成と使用に関する詳細については、『WebLogic Server 9.0 アプリケーションのデプロイメント』の「Configuring Applications for Production Deployment」を参照してください。

アプリケーションの WebLogic Server デプロイメント コンフィグレーションをカスタム デプロイメント プランにエクスポートする際の詳細 (PlanGenerator の使用手順も含む) については、『WebLogic Server 9.0 アプリケーションのデプロイメント』の「Exporting an Application for Deployment to New Environments」を参照してください。

デプロイメント プランによるアプリケーションのデプロイ

アプリケーション内の診断モニタを動的に制御するためには、デプロイメント プランでアプリケーションをデプロイする必要があります。この場合も、管理者は、Administration Console や WebLogic Scripting Tool (WLST) を始めとする、デプロイメント制御用に用意された任意の標準 WebLogic Server ツールを使用できます。たとえば、次の WLST コマンドでは、対応するデプロイメント プランでアプリケーションをデプロイします。

    wls:/mydomain/serverConfig> deploy('myApp', './myApp.ear', 'myserver',
'nostage', './plan.xml')

デプロイメント後に有効な診断モニタ コンフィグレーションは、元の記述子と、プランから得られるオーバーライドされた属性値の組み合わせです。元の記述子に所定の名前のモニタが含まれず、プランでそのモニタの属性をオーバーライドした場合、そのモニタはアプリケーションで使用されるモニタのセットに追加されます。このように、アプリケーションが空の weblogic-diagnostics.xml 記述子と一緒にビルドされていれば、デプロイメント プロセス中にアプリケーションのアーカイブを変更せずにアプリケーションに診断モニタを追加できます。

インスツルメンテーション コンフィグレーションの動的な制御のサポート

アプリケーション内のインスツルメンテーション モニタは、デプロイメント プラン (JSR-88) メカニズムで動的に制御できます。デプロイメント プランを使用すると、ビルド後のアプリケーションに診断モニタを追加できます。この際、アプリケーションのアーカイブを変更する必要はありません。ただし、アプリケーション インスツルメンテーションが機能するためには、アプリケーションに空の weblogic-diagnostics.xml 記述子が少なくとも 1 つある必要があります。デプロイメント プランを使用すると、アプリケーションのアーカイブ内の記述子にはないモニタを追加できます。また、デプロイメント プランを用いるとモニタの特定の属性を更新することもでき、この際にサーバを再起動したりアプリケーションを再デプロイしたりする必要はありません。たとえば、アプリケーションを再デプロイせずに、診断モニタを有効または無効にしたり、モニタに対してアクションを追加または削除したりできます。

変更したプランによるアプリケーションの更新

すでに紹介したツールを用いてデプロイメント プランを変更しアプリケーションを更新するだけで、デプロイ済みのアプリケーションで使用されているモニタを動的に制御できます。たとえば、モニタを有効または無効にしたり、モニタにアタッチされているアクションを追加または削除したりできます。また、モニタの仕分けフィルタの有効化または無効化、仕分けマスクの変更も動的に行えます。こうした変更はアプリケーションを再デプロイしなくても直ちに有効になります。たとえば、次の WLST コマンドを使用して、変更後のプランの値でアプリケーションを更新します。

wls:/mydomain/serverConfig> updateApplication('testapp',
'c:/tmp/plan.xml')

 

フッタのナビゲーションのスキップ  ページの先頭 前 次