ヘッダーをスキップ
Oracle® Fusion Middleware Java EE 管理 API によるモニタと管理
11g リリース 1 (10.3.1)
B55545-01
  ドキュメントのライブラリ


 

Oracle® Fusion Middleware

Java EE 管理 API によるモニタと管理

11g リリース 1 (10.3.1)

B55545-01(原本部品番号:E13736-01)

2009 年 5 月

このマニュアルでは、Java EE 管理 API 群を使用すると、ソフトウェア開発者は、JDBC 接続プールやデプロイされているアプリケーションなどのリソースをそれ 1 つで検出して参照できる Java プログラムを Java EE Web アプリケーション サーバ上に作成できます。

概要とロードマップ

Java EE 管理仕様には、Java EE Web アプリケーション サーバおよびそのリソースの実行時状態をモニタおよび管理するための標準データ モデルが記述されています。また、Java EE MEJB (Management EJB) コンポーネントによるモデルの標準マッピングも含まれています。

以下の節では、このガイド『Oracle Fusion Middleware Java EE 管理 API によるモニタと管理』の内容と構成について説明します。

ドキュメントの内容と対象読者

このドキュメントは、Java EE アプリケーション用の管理サービスを開発するソフトウェア開発者、および JMX 互換の管理システムを開発するソフトウェア ベンダを対象としています。また、WebLogic Server を評価するビジネス アナリストや、特定のアプリケーションで JMX の使用を考えているシステム設計者にとって便利な情報も掲載されています。

このドキュメントは、ソフトウェア プロジェクトの設計段階と開発段階に関する情報を説明するものです。このドキュメントでは、プロダクション段階での管理、モニタ、パフォーマンス チューニングについては扱いません。それらのトピックに関する WebLogic Server のドキュメントとリソースへのリンクについては、「関連ドキュメント」を参照してください。

このドキュメントは、Java EE および一般的なアプリケーション管理の概念に精通している読者を対象としています。このドキュメントでは、限定的でありながら有用な一連の JMX 管理サービスを開発するための実践的な方法を重点的に扱います。JMX をより広範な管理上の問題に適用するには、「関連ドキュメント」に挙げる JMX 仕様などのドキュメントを参照してください。

このドキュメントの手引き

このドキュメントの構成は次のとおりです。

関連ドキュメント

「Sun Developer Network」には、JMX に関する書籍、ホワイトペーパー、および詳細情報へのリンクが掲載された Web サイト http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/ があります。

JMX 1.2 仕様および API ドキュメントを参照する場合は、http://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html からダウンロードしてください。

JMX リモート API 1.0 仕様および API ドキュメントを参照する場合は、http://jcp.org/aboutJava/communityprocess/final/jsr160/index.html からダウンロードしてください。

WebLogic Server アプリケーション用に他のタイプの管理サービスを開発するためのガイドラインについては、以下のドキュメントを参照してください。

WebLogic Server アプリケーションを開発およびチューニングするためのガイドラインについては、以下のドキュメントを参照してください。

WebLogic Server での Java EE 管理 API の使用

Java EE 管理 API 群を使用すると、ソフトウェア開発者は、JDBC 接続プールやデプロイされているアプリケーションなどのリソースをそれ 1 つで検出して参照できる Java プログラムを Java EE Web アプリケーション サーバ上に作成できます。この API 群は Java EE の管理仕様の一部です。Java EE の管理仕様では、すべての Java EE Web アプリケーション サーバは標準データ モデルでリソースを記述する必要があります。

以下の節では、WebLogic Server で Java EE 管理 API を使用する方法について説明します。

Java EE Management Model と API について

Java EE Management データ モデルでは、Web アプリケーション サーバ リソース タイプの各インスタンスは Java EE 管理対象オブジェクト (JMO) によって表現されます。Java EE 管理仕様では、どのタイプのリソースを JMO で表すべきかを厳密に定めています。JMO 自体には、データ モデルにオブジェクトの場所を記述する際に使用される、一連の限られた属性のみが含まれます。

Java EE 管理仕様は、http://jcp.org/aboutJava/communityprocess/final/jsr077/index.html でダウンロードしてください。

JMO の階層

データ モデルでは、JMO はツリー構造で階層状に構成されます。ルートの JMO J2EEDomain は、論理的に関連付けられた Web アプリケーション サーバ インスタンスの集合を表します。J2EEDomain には、J2EEServer JMO のすべてのインスタンスのオブジェクト名が含まれ、各 J2EEServer JMO は、その集合内にある 1 つのサーバ インスタンスを表しています。

Java アプリケーションでは JMO の階層を参照して、オブジェクト名のクエリやそのクエリ結果で指定される JMO のルックアップを再帰的に行えます。

JMO のオブジェクト名

各 JMO インスタンスは、javax.management.ObjectName のユニークなオブジェクト名によって識別されます。オブジェクト名は、以下のパターンを使用します。

domain:name=j2eeType=value,name=value,parent-j2eeType[,property=value]* 

たとえば mydomain:J2EEtype=J2EEDomain,name=mydomain のようになります。

Java EE 管理仕様では、各タイプの JMO のオブジェクト名には名前と値のペアが必須であることが厳密に定められています。

それぞれの子 JMO のオブジェクト名には、その親 JMO のオブジェクト名の名前と値のペアが含まれます。あるサーバ インスタンスの JMO の名前が、

mydomain:j2eeType=J2EEServer,name=myserver 

である場合、そのサーバ インスタンスにデプロイされたアプリケーションの一部であるサーブレットの JMO の名前は次のようになります。

mydomain:J2EEApplication=myapplication,J2EEServer=myserver,WebModule=myapp_mywebmodule,j2eeType=Servlet,name=myservlet_name 

名前と値のペアは、任意の順序で構いません。

JMO の任意指定の機能

Java EE 管理仕様のバージョン 1.0 では、Web アプリケーション サーバが JMO を実装し、JMO への API アクセスを提供していることが必須事項です。

必要に応じて、パフォーマンス統計や管理操作を行ったり、指定されたイベントが発生したときに通知を送信したりするように JMO を実装できます。

JMO へのアクセス

Java アプリケーションから JMO へのアクセスは、MEJB (Management Enterprise Java Bean) のリモート インタフェースである javax.management.j2ee.Management を介して行われます。

Java EE 管理仕様では、MEJB のホーム インタフェースがサーバの JNDI ツリーに ejb.mgmt.MEJB として登録されている必要があります。

javax.management.j2ee パッケージの API リファレンス http://java.sun.com/javaee/5/docs/api/javax/management/j2ee/package-summary.html を参照してください。

WebLogic Server での Java EE Management Model

WebLogic Server 9.0 には、Java EE 管理仕様バージョン 1.0 の必要な機能のみが実装されています。そのため、以下の制限があります。

  • JMO はパフォーマンス統計や管理操作、または通知の送信を行わない。

  • Common Information Model (CIM) へのマッピングは行わない。

  • SNMP の管理情報ベース (MIB) へのマッピングは行わない。

MEJB と JMO は管理サーバでのみ使用できます。これは Java EE Management Model と一貫性があります。Java EE Management Model では、論理的に関連のあるいくつかの集合内にほとんどの Java EE Web サーバが存在し、その集合内にはサーバ インスタンスへのアクセスやそれらの管理を行うための中枢があることを前提としています。Java アプリケーションでは、WebLogic Server ドメインの任意のサーバ インスタンスの任意のリソースを表す JMO を管理サーバから参照できます。

WebLogic Server では JMO を MBean のラッパーとして実装しているため、JMO に対応する WebLogic Server MBean に変更が加えられると、その変更は Java EE 管理 API によってすぐに反映されます。

WebLogic Server のすべての JMO のオブジェクト名は、domain: の部分が WebLogic Server ドメインの名前と一致しています。

WebLogic Server での MEJB へのアクセス

モニタするデータを MEJB を通じて取得するには以下を実行します。

  1. ejb.mgmt.MEJB の下にある管理サーバの JNDI ツリーを介して javax.management.j2ee.ManagementHome インタフェースをルックアップします。

  2. ManagementHome を使用して MEJB のリモート インタフェースである javax.management.j2ee.Management のインスタンスを生成します。

例 : JMO の名前のクエリ

サンプル クラスでは、WebLogic Server ドメインの MEJB にアクセスし、javax.management.j2ee.Management.queryNames メソッドを呼び出します。このメソッドはドメイン内のすべての JMO のオブジェクト名を返します。

例 : JMO の名前のクエリ 1

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Iterator;
import java.util.Set;
import java.util.Properties;
import javax.management.j2ee.Management;
import javax.management.j2ee.ManagementHome;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.ObjectName;
import javax.management.QueryExp;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.ejb.CreateException;
public class GetJMONames { 
   static String url = "t3://localhost:7001";
   static String user = "weblogic";
   static String password = "weblogic";
   public static void main(String[] args) {
      try {
         getAllJMONames();
      }catch(Exception e){
      System.out.println(e);
      }
   }
   public static Management getMEJBRemote()
       throws IOException, MalformedURLException,
       NamingException,CreateException
   {
      Context context = getInitialContext();
      ManagementHome home = (ManagementHome)
          context.lookup("ejb.mgmt.MEJB");
      Management bean = home.create();
      return bean;
   }
   public static Context getInitialContext()
          throws NamingException
   {
      Properties p = new Properties();
      p.put(Context.INITIAL_CONTEXT_FACTORY,
          "weblogic.jndi.WLInitialContextFactory");
      p.put(Context.PROVIDER_URL, url);
      if (user != null) {
         p.put(Context.SECURITY_PRINCIPAL, user);
         if (password == null)
            password = "";
            p.put(Context.SECURITY_CREDENTIALS, password);
         }
      return new InitialContext(p);
   }
   public static void getAllJMONames()
   {
      try {
         Management rhome = getMEJBRemote();
         String string = "";
         ObjectName name = new ObjectName(string);
         QueryExp query = null;
         Set allNames = rhome.queryNames(name, query);
         Iterator nameIterator = allNames.iterator();
         while(nameIterator.hasNext()) {
            ObjectName on = (ObjectName)nameIterator.next();
            System.out.println(on.getCanonicalName() + "\n");
         }
      } catch (Exception ex) {
            ex.printStackTrace();
      }
   }
}

表記規則

このマニュアルでは次の表記規則を使用します。

規則 意味
太字 太字は、操作に関連する Graphical User Interface 要素、または本文中で定義されている用語および用語集に記載されている用語を示す。
イタリック体 イタリックは、ブックタイトル、強調およびユーザが特定の値を指定するプレースホルダ変数を示す。
固定幅フォント 固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示す。

ドキュメントのアクセシビリティについて

Oracle は、障害のあるお客様を含む、すべてのお客様に Oracle の製品、サービスおよびサポート ドキュメントをご利用いただけることを目標としています。Oracle のドキュメントには、ユーザが障害支援技術を使用して情報を利用できる機能が組み込まれています。HTML 形式のドキュメントで用意されており、障害のあるお客様が簡単にアクセスできるようにマークアップされています。標準規格は改善されつつあります。Oracle はドキュメントをすべてのお客様がご利用できるように、市場をリードする他の技術ベンダと積極的に連携して技術的な問題に対応しています。Oracle のアクセシビリティについての詳細情報は、Oracle Accessibility Program の Web サイト http://www.oracle.com/accessibility/ を参照してください。

ドキュメント内のサンプル コードのアクセシビリティについて

スクリーン リーダーは、ドキュメント内のサンプル コードを正確に読めない場合があります。コード表記規則では閉じ括弧だけを行に記述する必要があります。しかし一部のスクリーン リーダーは括弧だけの行を読まない場合があります。

外部 Web サイトのドキュメントのアクセシビリティについて

このドキュメントには Oracle およびその関連会社が所有または管理しない Web サイトへのリンクが含まれている場合があります。Oracle およびその関連会社は、それらの Web サイトのアクセシビリティに関しての評価や言及は行っておりません。

Oracle サポート サービスへのヒアリング アクセスの聴覚障害者/難聴

Oracle サポート サービスへ telecommunications relay service(TRS)アクセスが提供されています。Oracle サポートについては、1.800.223.1711 にお電話ください。Oracle サポート サービス エンジニアは、技術的な問題に対応し、Oracle サービス リクエスト処理に従ってお客様にサポートを提供します。TRS の詳細については、http://www.fcc.gov/cgb/consumerfacts/trs.html を参照し、電話番号の一覧については、http://www.fcc.gov/cgb/dro/trsphonebk.html を参照してください。


Oracle Fusion Middleware Java EE 管理 API によるモニタと管理、11g リリース 1 (10.3.1)

E13736-01

Copyright © 2007, 2009, Oracle and/or its affiliates. All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、Oracle までご連絡ください。

このソフトウェアおよび関連ドキュメントが米国政府機関、もしくは米国政府機関に代わってこのソフトウェアをライセンスまたは使用する者に提供される場合は、次の注意が適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアは、危険が伴うアプリケーション (人的傷害を発生させる可能性があるアプリケーションを含む) への用途を目的として開発されていません。このソフトウェアを危険が伴うアプリケーションで使用する際、このソフトウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性 (redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle およびその関連会社は一切の責任を負いかねます。

Oracle は Oracle Corporation およびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

このソフトウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。Oracle およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。Oracle およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。