ORACLE JAPAN Server Release 7.0

 

  |  

  WebLogic Server ホーム   |     パートナーズ ガイド   |   前へ   |   次へ   |   目次   |   PDF 版

WebLogic Server MBean の使用

 

この章では、特定の WebLogic Server MBean の使用方法について説明します。

 


概要

注意: WebLogic JMX Service プログラマーズ ガイド』には、WebLogic Server MBean を使用するための詳細な情報、およびコード サンプルが記載されています。JMX API に精通していない場合は、まずこのマニュアルを参照してください。

WebLogic Server で MBean を使用する基本手順は、以下のとおりです。

  1. 管理サーバまたは個々の WebLogic Server インスタンスの MBeanHome インタフェースを取得します。詳細については、『WebLogic JMX Service プログラマーズ ガイド』の「WebLogic Server MBean へのアクセス」を参照してください。

  2. アプリケーションで純粋な JMX メソッド呼び出しを使用する必要がある場合は、MBeanHome から MBeanServer インタフェースを取得します。

  3. 使用する MBean を個々に取得します。

アプリケーションで JMX 通知を使用する場合は、「MBean 通知の使い方」で、リスナを設定する方法およびリスナを WebLogic MBean に登録する方法の詳細について参照してください。

独自のカスタム MBean をデプロイする場合は、「WebLogic Server MBean へのアクセス」を参照してください。

以降の節では、さまざまな WebLogic Server API に固有の MBean を使用する方法について説明します。

 


JDBC プロファイリング MBean の使用

BEA では、SQL 文、prepared statements、および JDBC 接続リークのメトリックを格納および解析するために使用できる複数の JDBC MBean を提供しています。次の節では、JDBC プロファイリングを有効にする方法および使用する方法について説明します。詳細については、次の WebLogic Server MBean および関連するクラスの「API ドキュメント」を参照してください。

JDBC プロファイリングの有効化

SQL 文または接続リーク プロファイルを解析する前に、調査する接続プールのプロファイリングを有効にする必要があります。プロファイリングが有効になると、接続プールによってメトリックは、後で解析するために外部リポジトリに格納されます。

アプリケーションは、JDBCConnectionPoolMBean を使用して JDBC プロファイリング オプションを有効および無効にします。標準接続プール プロパティの get/set メソッドを提供するのに加えて、JDBCConnectionPoolMBean はプロファイリングを有効および無効にする次のメソッドを提供します。

次の例は、JDBCConnectionPoolMBean を取得し、すべてのプロファイリング オプションを有効にするアプリケーションを示します。この例では、各文パラメータについて最大 20 文字を格納します。

// 管理サーバの MBeanHome を取得する
...
JDBCConnectionPoolMBean mbean =
(JDBCConnectionPoolMBean)home.getConfigurationMBean(poolName,
"JDBCConnectionPoolConfig");
mbean.setConnLeakProfilingEnabled(true);
mbean.setSqlStmtParamLoggingEnabled(true);
mbean.setSqlStmtMaxParamLength(maxLen);
...

JDBC プロファイルのアクセス

必要なプロファイリング オプションを有効にしたら、JDBCStatementProfile および JDBCConnectionLeakProfile クラスを使用して、格納されたメトリックを解析できます。これらのプロファイル クラスは共に、JDBCConnectionPoolRuntimeMBean を使用して簡単に取得できます。

JDBCStatementProfile は、接続プールの SQL 文と関連メトリック(およびオプションとして、バインド パラメータ)を格納します。JDBCConnectionLeakProfile は、リークされた接続のスタック トレースを格納します。

すべてのプロファイルを一度に取得する場合、非常に多くのリソースが使用される可能性があります。この理由により、通常、アプリケーションは指定した時間でプロファイルのサブセットのみを検索します。これを行うには、最初にストレージ内のプロファイルの合計数を決定してから、より小さいサブセットでプロファイルを検索します。

次の例は、プロファイルの数をより小さい単位に分ける簡単な方法を示します。

// 接続プールをホストするサーバの MBeanHome を取得する
. . .
// 「testPool」接続プールの JDBCRuntimeMbean を取得する
String poolName = "testPool";
JDBCConnectionPoolRuntimeMBean mbean =
(JDBCConnectionPoolRuntimeMBean)home.getRuntimeMBean
(poolName,"JDBCConnectionPoolRuntime");
JDBCConnectionLeakProfile[] profiles = null; 
// 使用可能な prepared statement のキャッシュ プロファイルの合計数を取得する
int profileCount = mbean.getConnectionLeakProfileCount();
// プロファイルの profilesPerStep の数を要求する
int profilesPerStep = 10;
// プロファイル数 profileIndex で開始する
int profileIndex = 0;
boolean done = (profileCount > 0);
while (!done) {
     // プロファイルを取得する
profiles = mbean.getConnectionLeakProfiles(profileIndex,
profilesPerStep);
     // 検索されたプロファイルを調査する
for (int index = 0; index < profiles.length; index++) {
          // プール名を取得する
String poolName = profiles[index].getPoolName();
          // スタック トレースを取得する
String stackTrace = profiles[index].getStackTrace();
}
     profileIndex = profileIndex + profilesPerStep - 1;
     // 取得したプロファイルの数が
// 要求した数よりも少ない場合は終了
done = (profiles.lengh < profilesPerStep);
}

 

back to top previous page next page