![]() |
![]() |
|
|
| |
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 タイプが定義されています。
config.xml
から読み込まれる、ドメイン全体のコンフィグレーション パラメータを表します。
以降の節では、各 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.Admin
、weblogic.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 が表す管理対象リソースのタイプを示します。リソース タイプの例として、Server
、WebComponent
、または JDBCConnectionPoolRuntime
などがあります。Type
は、以下に示す標準的なサフィックスを付加することで、管理、コンフィグレーション、実行時の各 MBean の識別にも使用されます。
たとえば、Type
の値が JDBCConnectionPool
の MBean ならば、
JDBCConnectionPool
となります。
JDBCConnectionPoolConfig
となります。
JDBCConnectionPoolRuntime
となります。
「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 を取得できます。同様に、SecurityMBean
や SNMPAgentMBean
などの 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 は、以下のとおりです。
![]() |
![]() |
![]() |