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

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

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

WLDF インスツルメンテーション ライブラリ

WebLogic 診断フレームワークのインスツルメンテーション ライブラリには診断モニタと診断アクションが含まれています。以下の節では、これらのライブラリについて説明します。

インスツルメンテーション ライブラリの項目の使い方については、「インスツルメンテーションのコンフィグレーション」を参照してください。

 


診断モニタ ライブラリ

診断モニタは、サーバ スコープのモニタとアプリケーション スコープのモニタに大別されます。サーバ スコープのモニタは WebLogic Server クラスのインスツルメントに使用できます。アプリケーションスコープのモニタはアプリケーション クラスのインスツルメントに使用します。DyeInjection モニタを除くすべてのモニタは代理モニタで、組み込みの診断アクションがありません。代わりに、モニタにアタッチされているアクションに委託して、診断アクティビティを実行します。

すべてのモニタには、それぞれのポイントカットがあらかじめコンフィグレーションされています。ただし、その作用を受ける実際の場所はインスツルメントされるクラスによって異なります。たとえば、Servlet_Before_Service モニタでは、さまざまなサーブレット実装のいろいろな場所にあるサーブレットまたは Java Server Page (JSP) サービス メソッドの入り口に診断コードが追加されます。

すべての委託モニタには、対応するアクションのみをアタッチできます。対応するかどうかはモニタの性質によって決まります。

次の表では、サーバ スコープ (WebLogic Server クラス) 内で使用できる診断モニタをリストして説明します。各モニタに対応する診断アクションについては、表の対応アクション タイプ カラムを参照してください。

表 B-1 サーバ スコープ内で使用する診断モニタ 

モニタ名

モニタ タイプ

対応アクション タイプ

ポイントカット

DyeInjection

Before

組み込み

要求がサーバに届く場所。

Connector_Before_Inbound

Before

Stateless

着信接続を処理するメソッドの入り口。

Connector_Before_Outbound

Before

Stateless

発信接続を処理するメソッドの入り口。

Connector_Before_Work

Before

Stateless

コネクタの作業項目のスケジューリング、開始、実行に関するメソッドの入り口。

Connector_Before_Tx

Before

Stateless

トランザクションの登録、登録解除、開始、ロールバック、コミットを行うメソッドの入り口。

Connector_After_Inbound

サーバ

Stateless

着信接続を処理するメソッドの出口。

Connector_After_Outbound

After

Stateless

発信接続を処理するメソッドの出口。

Connector_After_Work

After

Stateless

コネクタの作業項目のスケジューリング、開始、実行に関するメソッドの出口。

Connector_After_Tx

After

Stateless

トランザクションの登録、登録解除、開始、ロールバック、コミットを行うメソッドの出口。

Connector_Around_Inbound

Around

Around

着信接続を処理するメソッドの入り口と出口。

Connector_Around_Outbound

Around

Around

発信接続を処理するメソッドの入り口と出口。

Connector_Around_Work

Around

Around

コネクタの作業項目のスケジューリング、開始、実行に関するメソッドの入り口と出口。

Connector_Around_Tx

Around

Around

トランザクションの登録、登録解除、開始、ロールバック、コミットを行うメソッドの入り口と出口。

JDBC_Before_Connection_Internal

Before

Stateless

以下のメソッドの呼び出しの前。

Driver.connect
DataSource.getConnection

JDBC_Before_Start_Internal

Before

Stateless

JDBC サブシステムの内部コード。

JDBC_Before_Commit_Internal

Before

Stateless

JDBC サブシステムの内部コード。

JDBC_Before_Rollback_Internal

Before

Stateless

JDBC サブシステムの内部コード。

JDBC_Before_Statement_Internal

Before

Stateless

JDBC サブシステムの内部コード。

JDBC_After_Connection_Internal

Before

Stateless

JDBC サブシステムの内部コード。

JDBC_After_Start_Internal

After

Stateless

JDBC サブシステムの内部コード。

JDBC_After_Commit_Internal

After

Stateless

JDBC サブシステムの内部コード。

JDBC_After_Rollback_Internal

After

Stateless

JDBC サブシステムの内部コード。

JDBC_After_Statement_Internal

After

Stateless

JDBC サブシステムの内部コード。


 

次の表には、アプリケーション スコープ (デプロイ済みアプリケーション) 内で使用できる診断モニタをリストします。各モニタに対応する診断アクションについては、表の対応アクション タイプ カラムを参照してください。

 

表 B-2 アプリケーション スコープ内で使用する診断モニタ 

モニタ名

モニタ タイプ

対応アクション タイプ

ポイントカット

Servlet_Before_Service

Before

Stateless

以下のサーブレットまたは JSP メソッドの入り口。

HttpJspPage._jspService
Servlet.service
HttpServlet.doGet
HttpServlet.doPost
Filter.doFilter

Servlet_Before_Session

Before

Stateless

以下のサーブレット メソッドの呼び出しの前。

HttpServletRequest.getSession
HttpSession.setAttribute/putValue
HttpSession.getAttribute/getValue
HttpSession.removeAttribute/
    removeValue
HttpSession.invalidate

Servlet_Before_Tags

Before

Stateless

以下の JSP メソッドの呼び出しの前。

Tag.doStartTag
Tag.doEndTag

JNDI_Before_Lookup

Before

Stateless

javax.naming.Context の lookup メソッドの呼び出しの前。

Context.lookup*

JMS_Before_
TopicPublished

Before

Stateless

以下のメソッドの呼び出しの前。

TopicPublisher.publish

JMS_Before_MessageSent

Before

Stateless

以下のメソッドの呼び出しの前。

QueSender send

JMS_Before_
AsyncMessageReceived

Before

Stateless

以下のメソッドの入り口。

MessageListener.onMessage

JMS_Before_
SyncMessageReceived

Before

Stateless

以下のメソッドの呼び出しの前。

MessageConsumer.receive*

JDBC_Before_
GetConnection

Before

Stateless

以下のメソッドの呼び出しの前。

Driver.connect
DataSource.getConnection

JDBC_Before_
CloseConnection

Before

Stateless

以下のメソッドの呼び出しの前。

Connection.close

JDBC_Before_
CommitRollback

Before

Stateless

以下のメソッドの呼び出しの前。

Connection.commit
Connection.rollback

JDBC_Before_Statement

Before

Stateless

以下のメソッドの呼び出しの前。

Connection.prepareStatement
Connection.prepareCall
Statement.addBatch
RowSet.setCommand

JDBC_Before_Execute

Before

Stateless

以下のメソッドの呼び出しの前。

Statement.execute*
PreparedStatement.execute*

EJB_Before_
SessionEjbMethods

Before

Stateless

以下のメソッドの入り口。

SessionBean.setSessionContext
SessionBean.ejbRemove
SessionBean.ejbActivate
SessionBean.ejbPassivate

EJB_Before_SessionEjb
SemanticMethods

Before

Stateless

以下のメソッドの入り口。

SessionBean.ejbCreate
SessionBean.ejbPostCreate

EJB_Before_
SessionEjbBusinessMethods

Before

Stateless

すべての SessionBean メソッドの入り口。これは標準の EJB メソッドではない。

EJB_Before_
EntityEjbMethods

Before

Stateless

以下のメソッドの入り口。

EnitityBean.setEntityContext
EnitityBean.unsetEntityContext
EnitityBean.ejbRemove
EnitityBean.ejbActivate
EnitityBean.ejbPassivate
EnitityBean.ejbLoad
EnitityBean.ejbStore

EJB_Before_Entity
EjbSemanticMethods

Before

Stateless

以下のメソッドの入り口。

EnitityBean.set*
EnitityBean.get*
EnitityBean.ejbFind*
EnitityBean.ejbHome*
EnitityBean.ejbSelect*
EnitityBean.ejbCreate*
EnitityBean.ejbPostCreate*

EJB_Before_EntityEjb
BusinessMethods

Before

Stateless

すべての EntityBean メソッドの入り口。これは標準の EJB メソッドではない。

MDB_Before_Message
Received

Before

Stateless

以下のメソッドの入り口。

MessageDrivenBean.onMessage

MDB_Before_Set
MessageDrivenContext

Before

Stateless

以下のメソッドの入り口。

MessageDrivenBean.setMessage
DrivenContext

MDB_Before_Remove

Before

Stateless

以下のメソッドの入り口。

MessageDrivenBean.ejbRemove

JTA_Before_Start

Before

Stateless

以下のメソッドの入り口。

UserTransaction.begin

JTA_Before_Commit

Before

Stateless

以下のメソッドの入り口。

UserTransaction.commit

JTA_Before_Rollback

Before

Stateless

以下のメソッドの入り口。

UserTransaction.rollback

Servlet_After_Service

After

Stateless

以下のサーブレットまたは JSP メソッドの出口。

HttpJspPage._jspService
Servlet.service
HttpServlet.doGet
HttpServlet.doPost
Filter.doFilter

Servlet_After_Session

After

Stateless

以下のサーブレット メソッドの呼び出しの後。

HttpServletRequest.getSession
HttpSession.setAttribute/putValue
HttpSession.getAttribute/getValue
HttpSession.removeAttribute/
    removeValue
HttpSession.invalidate

Servlet_After_Tags

After

Stateless

以下の JSP メソッドの呼び出しの後。

Tag.doStartTag
Tag.doEndTag

JNDI_After_Lookup

After

Stateless

javax.naming.Context lookup メソッドの呼び出しの後

Context.lookup*

JMS_After_Topic
Published

After

Stateless

以下のメソッドの呼び出しの後。

TopicPublisher.publish

JMS_After_MessageSent

After

Stateless

以下のメソッドの呼び出しの後。

QueSender send

JMS_After_
AsyncMessageReceived

After

Stateless

以下のメソッドの出口。

MessageListener.onMessage

JMS_After_Sync
MessageReceived

After

Stateless

以下のメソッドの呼び出しの後。

MessageConsumer.receive*

JDBC_After_Get
Connection

After

Stateless

以下のメソッドの呼び出しの後。

Driver.connect
DataSource.getConnection

JDBC_After_
CloseConnection

After

Stateless

以下のメソッドの呼び出しの後。

Connection.close

JDBC_After_Commit
Rollback

After

Stateless

以下のメソッドの呼び出しの後。

Connection.commit
Connection.rollback

JDBC_After_Statement

After

Stateless

以下のメソッドの呼び出しの後。

Connection.prepareStatement
Connection.prepareCall
Statement.addBatch
RowSet.setCommand

JDBC_After_Execute

After

Stateless

以下のメソッドの呼び出しの後。

Statement.execute*
PreparedStatement.execute*

EJB_After_
SessionEjbMethods

After

Stateless

以下のメソッドの出口。

SessionBean.setSessionContext
SessionBean.ejbRemove
SessionBean.ejbActivate
SessionBean.ejbPassivate

EJB_After_SessionEjb
SemanticMethods

After

Stateless

以下のメソッドの出口。

SessionBean.ejbCreate
SessionBean.ejbPostCreate

EJB_After_SessionEjb
BusinessMethods

After

Stateless

すべての SessionBean メソッドの出口。これは標準の EJB メソッドではない。

EJB_After_EntityEjb
Methods

After

Stateless

以下のメソッドの出口。

EnitityBean.setEntityContext
EnitityBean.unsetEntityContext EnitityBean.ejbRemove
EnitityBean.ejbActivate
EnitityBean.ejbPassivate
EnitityBean.ejbLoad
EnitityBean.ejbStore

EJB_After_EntityEjb
SemanticMethods

After

Stateless

以下のメソッドの出口。

EnitityBean.set*
EnitityBean.get*
EnitityBean.ejbFind*
EnitityBean.ejbHome*
EnitityBean.ejbSelect*
EnitityBean.ejbCreate*
EnitityBean.ejbPostCreate*

EJB_After_EntityEjb
BusinessMethods

After

Stateless

すべての EntityBean メソッドの出口。これは標準の EJB メソッドではない。

MDB_After_Message
Received

After

Stateless

以下のメソッドの出口。

MessageDrivenBean.onMessage

MDB_After_SetMessageDrivenContext

After

Stateless

以下のメソッドの出口。

MessageDrivenBean.setMessage
DrivenContext

MDB_After_Remove

After

Stateless

以下のメソッドの出口。

MessageDrivenBean.ejbRemove

JTA_After_Start

After

StatelessAdvice

以下のメソッドの出口。

UserTransaction.begin

JTA_After_Commit

After

StatelessAdvice

以下のメソッドの出口。

UserTransaction.commit

JTA_After_Rollback

After

StatelessAdvice

以下のメソッドの出口。

UserTransaction.rollback

Servlet_Around_Service

Around

Around

以下のサーブレットまたは JSP メソッドの入り口と出口。

HttpJspPage._jspService
Servlet.service
HttpServlet.doGet
HttpServlet.doPost
Filter.doFilter

Servlet_Around_Session

Around

Around

以下のサーブレット メソッドの呼び出しの前後。

HttpServletRequest.getSession
HttpSession.setAttribute/putValue
HttpSession.getAttribute/getValue
HttpSession.removeAttribute/
    removeValue
HttpSession.invalidate

Servlet_Around_Tags

Around

Around

以下の JSP メソッドの呼び出しの前後。

Tag.doStartTag
Tag.doEndTag

JNDI_Around_Lookup

Around

Around

javax.naming.Context ルックアップ メソッドの呼び出しの前後。

Context.lookup*

JMS_Around_Topic
Published

Around

Around

以下のメソッドの呼び出しの前後。

TopicPublisher.publish

JMS_Around_Message
Sent

Around

Around

以下のメソッドの呼び出しの前後。

QueSender send

JMS_Around_Async
MessageReceived

Around

Around

以下のメソッドの入り口と出口。

MessageListener.onMessage

JMS_Around_Sync
MessageReceived

Around

Around

以下のメソッドの呼び出しの前後。

MessageConsumer.receive*

JDBC_Around_Get
Connection

Around

Around

以下のメソッドの呼び出しの前後。

Driver.connect
DataSource.getConnection

JDBC_Around_Close
Connection

Around

Around

以下のメソッドの呼び出しの前後。

Connection.close

JDBC_Around_CommitRollback

Around

Around

以下のメソッドの呼び出しの前後。

Connection.commit
Connection.rollback

JDBC_Around_
Statement

Around

Around

以下のメソッドの呼び出しの前後。

Connection.prepareStatement
Connection.prepareCall
Statement.addBatch
RowSet.setCommand

JDBC_Around_Execute

Around

Around

以下のメソッドの呼び出しの前後。

Statement.execute*
PreparedStatement.execute*

EJB_Around_Session
EjbMethods

Around

Around

以下のメソッドの呼び出しの前後。

Statement.execute*
PreparedStatement.execute*

EJB_Around_SessionEjbSemanticMethods

Around

Around

以下のメソッドの入り口と出口。

SessionBean.ejbCreate
SessionBean.ejbPostCreate

EJB_Around_SessionEjbBusinessMethods

Around

Around

すべての SessionBean メソッドの入り口と出口。これは標準の EJB メソッドではない。

EJB_Around_EntityEjbMethods

Around

Around

以下のメソッドの出口。

EnitityBean.setEntityContext
EnitityBean.unsetEntityContext
EnitityBean.ejbRemove
EnitityBean.ejbActivate
EnitityBean.ejbPassivate
EnitityBean.ejbLoad
EnitityBean.ejbStore

EJB_Around_EntityEjb
SemanticMethods

Around

Around

以下のメソッドの入り口と出口。

EnitityBean.set*
EnitityBean.get*
EnitityBean.ejbFind*
EnitityBean.ejbHome*
EnitityBean.ejbSelect*
EnitityBean.ejbCreate*
EnitityBean.ejbPostCreate*

EJB_Around_EntityEjb
BusinessMethods

Around

Around

すべての EntityBean メソッドの入り口と出口。これは標準の EJB メソッドではない。

MDB_Around_MessageReceived

Around

Around

以下のメソッドの入り口と出口。

MessageDrivenBean.onMessage

MDB_Around_Set
MessageDrivenContext

Around

Around

以下のメソッドの入り口と出口。

MessageDrivenBean.setMessage
DrivenContext

MDB_Around_Remove

Around

Around

以下のメソッドの入り口と出口。

MessageDrivenBean.ejbRemove

JTA_Around_Start

Around

Around

以下のメソッドの入り口と出口。

UserTransaction.begin

JTA_Around_Commit

Around

Around

以下のメソッドの入り口と出口。

UserTransaction.commit

JTA_Around_Rollback

Around

Around

以下のメソッドの入り口と出口。

UserTransaction.rollback


 

 


診断アクション ライブラリ

診断アクション ライブラリには、以下のアクションが含まれます。

これらの診断アクションは、上の 2 つの表で説明した代理モニタで使用できます。また、ユーザが定義してアプリケーション内で使用できるカスタム モニタと一緒に使用することもできます。各診断アクションは、対応モニタ タイプ カラムに示されている対応するモニタとのみ一緒に使用できます。一部のアクション (TraceElapsedTimeAction など) はイベント ペイロードを生成します。

TraceAction

このアクションは Stateless アクションで、Before および After モニタ タイプに対応しています。

TraceAction は、プログラムの実行中に作用場所に追跡イベントを生成します。以下の情報が生成されます。

DisplayArgumentsAction

このアクションは Stateless アクションで、Before および After モニタ タイプに対応しています。

DisplayArgumentsAction は、プログラムの実行中に作用場所にインスツルメンテーション イベントを生成し、メソッドの引数または戻り値をキャプチャします。

このアクションが実行されると、イベント アーカイブにディスパッチされるインスツルメンテーション イベントが発生します。インスツルメンテーション イベントが before モニタにアタッチされた場合は、ジョインポイントへの入力引数 (たとえばメソッド引数) がキャプチャされます。インスツルメンテーション イベントが after モニタにアタッチされた場合は、ジョインポイントからの戻り値がキャプチャされます。イベントは、以下の情報を保持します。

TraceElapsedTimeAction

このアクションは Around アクションで、Around モニタ タイプに対応しています。

TraceElapsedTimeAction は 2 つのイベント (プログラム実行中の特定の場所の前と後) を生成します。

このアクションが実行されると、関連付けられたジョインポイントの実行前と実行後のタイムスタンプがキャプチャされます。そして、これらの差を計算することで経過時間が算出されます。このアクションでは、イベント アーカイブにディスパッチされるインスツルメンテーション イベントが生成されます。経過時間は、イベント ペイロードとして格納されます。イベントは、以下の情報を保持します。

StackDumpAction

このアクションは Stateless アクションで、Before および After モニタ タイプに対応しています。

StackDumpAction は、プログラムの実行中に作用場所にインスツルメンテーション イベントを生成し、スタック ダンプをキャプチャします。

このアクションが実行されると、イベント アーカイブにディスパッチされるインスツルメンテーション イベントが生成されます。スタック トレースは、イベント ペイロードとしてキャプチャされます。イベントは、以下の情報を保持します。

ThreadDumpAction

このアクションは Stateless アクションで、Before および After モニタ タイプに対応しています。

ThreadDumpAction は、プログラムの実行中に作用場所にインスツルメンテーション イベントを生成し、スレッド ダンプをキャプチャします (基底の VM でサポートされている場合)。JDK 1.5 (BEA JRockit および Sun) ではこのアクションをサポートします。

このアクションでは、イベント アーカイブにディスパッチされるインスツルメンテーション イベントが生成されます。このアクションは JRockit JVM でのみ使用できます。他の JVM の場合は無視されます。スレッド ダンプは、イベント ペイロードとしてキャプチャされます。イベントは、以下の情報を保持します。

 

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