ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     JMX Service プログラマーズ ガイド   |   前へ   |   次へ   |   目次   |   索引   |   PDF 版

WebLogic JMX サービスの概要

 

以下の節では、WebLogic Server の JMX 管理フレームワークについて概説します。

 


概要

WebLogic Server 管理アーキテクチャは、Sun Microsystems の Java Management Extension(JMX)仕様をベースとしています。BEA では、WebLogic Server で使用できる数多くの API およびリソースをあらかじめ用意しており、それらのリソースをモニタおよび管理するための JMX に準拠した Administration Console を提供しています。

すべての WebLogic Server 管理機能には、Management Bean(MBean)を使用してアクセスできます。MBean は WebLogic Server のドメイン コンフィグレーションまたは実行時の状態からその値を取得します。MBean を使用すると、開発者は JMX 標準 API を通じて WebLogic Server に関するすべてのコンフィグレーションおよびモニタ情報にプログラムでアクセスできます。

このガイドでは、WebLogic Server の JMX 実装について概説します。その結果、WebLogic Server の、JMX で管理できるリソースをモニタおよび管理するアプリケーションや管理フレームワークを開発できるようになります。

 


WebLogic Server の管理システム

WebLogic Server の管理システムでは、JMX 1.0 仕様で示されている必須のコンポーネントがすべて実装されています。WebLogic Server インストールには複数のサーバを含めることができるので、JMX コンポーネントは必ずインストール全体に分散されます。次の図は、典型的な WebLogic Server インストールにおける JMX コンポーネントを表しています。

以降の節では、各 JMX コンポーネントについて概説します。

管理対象リソース

管理対象リソースには、WebLogic Server インスタンスでホストされる API、サービス、アプリケーションなどがあります。それらの API、サービス、アプリケーションは、JMX による管理用にあらかじめ用意されているものです。各管理対象リソースには、リソースのモニタまたは変更に使用される 1 つまたは複数の MBean があります。

WebLogic に用意されている API には、EJB、JDBC、JMS、JTA、XML などがあります。スタートアップ クラス、シャットダウン クラス、セキュリティ レルムなどの WebLogic Server サービスもあらかじめ用意されています。さらに、WebLogic Server では Web アプリケーションとそのコンポーネントに対しても JMX による管理が提供されているので、JMX 仕様を使用してアプリケーションのデプロイメント パラメータを変更したり、そのデプロイメント ステータスをモニタしたりできます。

MBean

MBean(管理対象 Bean)は、管理対象リソースを表す JMX の構成概念です。WebLogic Server の各管理対象リソース(API、サービス、アプリケーション コンポーネント)では、1 つまたは複数の MBean を使用して、リソースをモニタまたは変更するためのインタフェースが用意されます。

WebLogic Server MBean には、JMX 仕様で定義されている、以下のような標準の処理ツールがすべて用意されています。

JMX 仕様に合わせて、すべての WebLogic MBean は標準的な MBean として実装され、その属性と処理は関連付けられたインタフェースで直接指定されます。WebLogic Server では、MBean のいくつかのタイプが定義されており、WebLogic Server の管理システム内でのそれぞれの機能が指定されています。特定の MBean タイプの詳細については、「 WebLogic Server MBean」を参照してください。

MBeanServer

JMX 仕様で説明されているように、MBeanServer は管理フレームワーク内の MBean にアクセスするための原則的なエージェントです。MBeanServer は、MBean のレジストリとして機能します。MBeanServer を使用すると、管理アプリケーションで MBean をルックアップし、MBean の属性およびメソッドを判別し、MBean 通知をリスンできます。

WebLogic 管理ドメイン内の各サーバには、独自の MBeanServer があります。各 MBeanServer(管理サーバの MBeanServer を除く)には、ローカルの WebLogic Server インスタンスに適用される MBean しか登録されません。たとえば、ある管理対象 WebLogic Server インスタンスの MBeanServer を使用するアプリケーションでは、その特定のサーバにデプロイされた Web アプリケーションをモニタできますが、そのドメイン内の別のサーバにデプロイされた Web アプリケーションはモニタできません。

管理サーバは、それ自体が WebLogic Server インスタンスなので、同様に MBeanServer を保持しています。管理サーバの MBeanServer は、そのサーバ独自のコンフィグレーション MBean と実行時 MBean だけでなく、ドメイン全体の管理 MBean のホストとなる点でユニークなものです。

MBeanHome

JMX 1.0 仕様では、MBeanServer インタフェースを MBeanServer の JVM の外部にある管理クライアントで使用できるようにするためのガイドラインが示されていません。WebLogic Server バージョン 6.1 では、MBeanHome インタフェースを通じて、MBeanServer インタフェースを、任意のクライアント(ローカルのクライアントまたはサーバの JVM の外部にあるクライアント)で使用できるようになっています。

MBeanHome は、WebLogic Server MBean へのアクセスに使用できる MBeanServer インタフェースのラッパーに過ぎません。ほとんどの場合、アプリケーションでは MBeanServer の代わりに MBeanHome を使用してサーバ リソースを管理できます。MBeanServer の MBeanHome を取得する単純な JNDI ルックアップを使用することで、すべてのクライアントから管理機能にアクセスできます。

MBeanHome インタフェースでは、WebLogic Server MBean の属性にアクセスするための、タイプ分けされたインタフェースが提供されているので、MBeanHome のほうが、一般的に MBeanServer より使いやすくなっています。たとえば、アプリケーションが MBeanHome から serverMBean を取得したら、serverMBean.getListenPort() を呼び出して、サーバのリスン ポートの int 値を返すことができます。MBeanServer を使用して同様の処理を実行するには、アプリケーションでまず、serverMBean の JMX オブジェクト名を取得し、その ListenPort 属性を要求する必要があります。属性自体が汎用オブジェクトとして返されるので、アプリケーションではその特定の属性を int 値にキャストする必要があります。

MBeanHome は、WebLogic Server MBean にアクセスする場合にのみ使用できます。MBeanHome を使用して、ユーザ定義 MBean を取得することはできません。登録済みのユーザ MBean にアクセスする必要のある純粋な JMX アプリケーションでは、まず MBeanHome をルックアップし、getMBeanServer() を呼び出すことによって、MBeanServer インタフェースを取得および使用できます。

先ほどの図に示されているように、管理ドメイン内の各 WebLogic Server インスタンスには MBeanServer と、対応する MBeanHome があります。これらの MBeanHome インタフェースを使用すると、個々の WebLogic Server のコンフィグレーション MBean と実行時 MBean をアプリケーションで処理できます。

管理サーバには、標準の MBeanHome インタフェース(サーバ インスタンスのローカルのコンフィグレーション MBean と実行時 MBean 用)だけでなく、以下で説明するような、ドメイン全体の MBeanHome インタフェースも提供されます。

管理 MBeanHome

WebLogic Server の管理システムでは、管理ドメイン内の全サーバ インスタンスの WebLogic MBean すべてにアクセスできる、ドメイン全体の MBeanHome インタフェースが利用されます。管理 MBeanHome には、管理サーバおよびすべての管理対象サーバのコンフィグレーション MBean と実行時 MBean に加えて、ドメイン全般の管理 MBean が含まれます。

ドメイン全体の MBeanHome インタフェースには、関連付けられた MBeanServer がありませんが、サーバ固有の MBeanHome と同じように操作できます。使用可能な MBean のリストだけが異なります。管理 MBeanHome は、先ほどの図に点線で示されているように、個々のサーバの MBeanHome インタフェースを使用して、別のサーバの MBean にアクセスします。

アプリケーションは、WebLogic 管理サーバを通じて、ドメイン全体の MBeanHome インタフェースを取得します。アプリケーションでは、ドメイン全体の MBeanHome を取得してから、ドメイン内の使用可能な MBean のリストをフィルタ処理することで、ドメイン全体の管理 MBean や個々のサーバの MBean を処理できます。「 WebLogic Server MBean へのアクセス」では、MBeanHome インタフェースをプログラムで取得する方法や、アプリケーションで取得する必要のある MBeanHome インタフェースに関する情報について説明しています。

 


WebLogic Server MBean

WebLogic Server では、以下の 3 つの MBean タイプが定義されています。

以降の節では、各 MBean のタイプについて説明します。

管理 MBean

管理 MBean は、WebLogic Server 管理ドメイン全体のコンフィグレーション済みプロパティを表します。ドメインの管理サーバを起動すると、ドメインの config.xml ファイルで指定されている要素および属性を使用して、サーバによって管理 MBean が作成されます。

すべての管理 MBean は、管理サーバが起動すると自動的に登録されます。まだ実行されていない管理対象サーバや、まだ管理サーバに接続されていない管理対象サーバの管理 MBean も登録されます。

JMX 管理アプリケーションでは、管理 MBean の属性を変更することで、間接的に管理ドメインの config.xml ファイルを変更できます。管理 MBean サーバでは 5 分ごとに管理 MBean が変更されているかどうかがチェックされ、必要に応じて変更が config.xml に書き込まれます。

管理 MBean に対する変更は、管理サーバの停止時や、WebLogic Server ユーティリティ(Administration Console、weblogic.Adminweblogic.Deploy など)による MBean 属性の変更時にも config.xml ファイルに書き込まれます。

コンフィグレーション MBean

管理 MBean が config.xml 要素の永続的な値を表すのに対して、コンフィグレーション MBean は同じ要素の「アクティブな」値を表します。これは、WebLogic Server サブシステムがサーバの有効期間中に処理に使用する、コンフィグレーション属性のアクティブな値(コンフィグレーション MBean)です。

WebLogic Server を起動すると、そのコンフィグレーション MBean の大部分は、サーバの管理 MBean から管理サーバに登録されているとおりに派生されます。たとえば、管理対象サーバは管理サーバに接続して、そのすべてのコンフィグレーション MBean を、関連付けられた管理 MBean から派生させることができます。

ただし、WebLogic Server の起動時にコマンドライン オプションを使用して、config.xml プロパティをオーバーライドすることもできます。この場合、サーバのコンフィグレーション MBean 属性は、管理 MBean の値ではなく、オーバーライド値から派生されます。その後、オーバーライド値のない属性が、管理サーバに登録されている管理 MBean から派生されます。

JMX アプリケーションでは、コンフィグレーション MBean を変更して、アクティブな WebLogic Server インスタンスのコンフィグレーションを一時的に変更できます。ただし、コンフィグレーション MBean に対する変更は、サーバが再起動したり、停止したりすると失われます。サーバのコンフィグレーションに対して永続的な変更を行うには、アプリケーションで、対応するリソースの管理 MBean を変更する必要があります。この変更は、自動的に config.xml ファイルに書き込まれます。管理 MBean に対する変更は、対応するコンフィグレーション MBean にも影響します。その結果、WebLogic Server サブシステムでは、新しくコンフィグレーションされた属性値が使用されます。

実行時 MBean

実行時 MBean は、それが表す基盤リソースまたはサブシステムの実行時の一時的な状態を表します。実行時 MBean は、属性値が派生されたり、オーバーライドされたりせず、指定された時間のサーバ リソースの状態を表すという点で、管理 MBean やコンフィグレーション MBean とは異なります。

たとえば、実行時 MBean は、WebLogic Server で現在利用可能なソケットの数や、サーバの現在の状態(実行中、サスペンド中、停止されようとしている、など)を表す場合に使用されます。

アプリケーションでは、実行時 MBean を使用して、Web アプリケーションなどの管理対象リソースのリソース使用状況をモニタし、潜在的なパフォーマンスの問題点を診断できます。

MBean の命名規約

すべての WebLogic Server MBean には、名前、タイプ、ドメインがあります。これらの属性は MBean の JMX オブジェクト名に反映されます。オブジェクト名は、指定した MBean に対する、すべてのドメインにわたってユニークな識別子であり、次のような構造を持っています。

domain name:Name=name,Type=type[,attr=value]...

Name は、MBean の指定したドメインとタイプに対するユニークな識別子です。

Type は、MBean が表す管理対象リソースのタイプを示します。リソース タイプの例として、ServerWebComponent、または JDBCConnectionPoolRuntime などがあります。Type は、以下に示す標準的なサフィックスを付加することで、管理、コンフィグレーション、実行時の各 MBean の識別にも使用されます。

たとえば、Type の値が JDBCConnectionPool の MBean ならば、

「MBean」サフィックスは、MBean の基本タイプを取得するために MBean インタフェース名から削除されています。JDBCConnectionPool の MBean の場合、実際の MBean インタフェース名は JDBCConnectionPoolMBean です。

特定のタイプの MBean には、JMX オブジェクト名に追加属性があります。すべての実行時 MBean とコンフィグレーション MBean には Location コンポーネントがあります。このコンポーネントは、MBean が格納されているサーバの名前を値として使用します。 For example:

mydomain:Name=myServlet,Type=ServletRuntime,Location=myserver

親 MBean と子の関係を持つすべての MBean は、そのオブジェクト名に関係を識別するための追加属性を持ちます。属性の形式は、次のようになります。

TypeOfParentMBean=NameOfParentMBean

次の例では、Server は親 MBean のタイプ、myserver は親 MBean の名前を表します。

mydomain:Name=mylog,Type=Log,Server=myserver

パッケージの命名規約

管理 MBean およびコンフィグレーション MBean のすべてのインタフェース タイプは、weblogic.management.configuration API に含まれています。

実行時 MBean のすべてのインタフェース タイプは、weblogic.management.runtime API に含まれています。

エージェントレベルのインタフェース(MBeanHome インタフェース、RemoteMBeanServer インタフェースなど)は、weblogic.management API に含まれています。

 


WebLogic Server MBean のクイック リファレンス

WebLogic Server には、サーバ システムおよびアプリケーションのコンフィグレーションに使用される数多くの MBean が用意されています。多くの場合、関連する MBean には、1 つまたは複数の関連する MBean を取得するためのゲッターを提供する「親」MBean を通じて、簡単にアクセスできます。この節では、JMX プログラミングに役立つ WebLogic Server MBean の主要なカテゴリの概要を説明すると共に、そのクイック リファレンスを提供します。

注意: WebLogic Server Management API は、Javadoc でオンライン ドキュメント化されています。WebLogic Server のプログラミング ガイドには、WebLogic Server MBean によってモデル化されるプログラミング API およびサービスに関する詳細な情報が記載されています。

ドメイン MBean

DomainMBean は、管理ドメイン全体をあらわす、高レベルの WebLogic Server MBean です。DomainMBean を取得したら、そのゲッター メソッドを使用して、次の図で示されているような、ドメインのログ、セキュリティ、SNMP、JTA コンフィグレーションを表す MBean を取得できます。同様に、SecurityMBeanSNMPAgentMBean などの MBean は、そのコンフィグレーションの一部を指定する MBean にアクセスするためのゲッターを提供します。

対象 MBean

対象 MBean は、管理ドメイン内にアプリケーションおよびリソースをデプロイするときに選択できるオブジェクトを表します。これらのオブジェクトには、WebLogic Server インスタンスや WebLogic Server クラスタを表す MBean があります。

すべての対象 MBean では、weblogic.management.configuration.TargetMBean インタフェースが実装されています。つまり、クラスタ、サーバの両方を、接続プールなどのリソースや、アプリケーション コンポーネントのデプロイの対象として選択できます。

サーバ MBean およびカーネル MBean

ServerMBean は、KernelMBean インタフェースを拡張したものであり、管理ドメイン内の特定の WebLogic Server インスタンスを表します。ServerMBean を取得するアプリケーションでは、関連付けられたサーバおよび WebLogic Server カーネルのコンフィグレーションを指定する、子 MBean に簡単にアクセスできます。

次の図は、KernelMBean インタフェースおよび ServerMBean インタフェースのゲッター メソッドを使用して取得できる、子 MBean を表しています。


 

クラスタ MBean

アプリケーションでは、Web アプリケーションや WebLogic Server リソースのデプロイ時に、コンフィグレーション済みの WebLogic Server クラスタを対象として選択することもできます。ClusterMBean は、主にゲッター メソッドおよびセッター メソッドを使用して、ロード バランシング アルゴリズム、マルチキャスト メッセージ プロパティなどのクラスタ プロパティをコンフィグレーションします。また、ClusterMBean には、クラスタのメンバーである、すべての ServerMBean を返すゲッター メソッドもあります。

デプロイ可能なユニット MBean

数多くの WebLogic Server MBean で DeploymentMBean インタフェースが実装されています。DeploymentMBean は、ドメイン内のサーバまたはクラスタにデプロイできる Web アプリケーション、Web アプリケーション コンポーネント、または WebLogic Server リソースの任意のタイプを表します。

デプロイ可能なユニットの操作に関心がある場合は、まず weblogic.management.configuration.DeploymentMBean に慣れておいてください。このインタフェースでは、対象を取得または追加したり、デプロイメント順を設定したりする場合に使用する基本的なメソッドが提供されています。

DeploymentMBean の基本的な操作に慣れたら、このインタフェースを実装する個々のデプロイ可能なユニット MBean を参照してください。デプロイ可能なアプリケーション コンポーネントを表す MBean は、以下のとおりです。

デプロイ可能な WebLogic Server リソースを表す MBean は、以下のとおりです。

 

back to top previous page next page