WebSphere プロセスのいずれか 1 つに新規の Java Management Extensions (JMX) MBean
(詳しくは JMX 1.x 仕様を参照) を提供および登録することにより、WebSphere Application Server 管理システムを拡張することができます。
このタスクについて
JMX MBean は、論理の特定部分の管理インターフェースを表します。
標準の WebSphere インフラストラクチャー内にあるすべての管理対象リソースは、JMX MBean として表されます。
さまざまな方法で、独自の MBean を作成し、その MBean を、任意の WebSphere プロセスで稼働している JMX MBeanServer に登録することができます。
詳しくは、
MBean API 資料を参照してください。
プロシージャー
- カスタム JMX MBean を作成します。
MBean を作成して WebSphere 管理システムを拡張する際には、
いくつかの選択肢があります。
別のアプリケーションの既存の JMX MBean のいずれかを使用することが可能です。
WebSphere Application Server プロセスに、
WebSphere Application Server 環境の外部にある
JMX MBean サーバーでテストした任意の MBean を登録することができます。
このような MBeans には、標準 MBeans、動的 MBeans、オープン MBeans、モデル MBeans などがあります。
既存の JMX MBean、および WebSphere Application Server 環境の外部で作成およびテスト
された MBeans だけでなく、WebSphere によって提供される特別の分散拡張機能を
使用して、WebSphere ExtensionMBean プロバイダーを作成することができます。この代替方法の選択により、WebSphere 管理
システムのすべての分散機能とのより優れた統合が実現できます。ExtensionMBean プロバイダーは、WebSphere Application Server に
同梱の DTD に基づいた MBean ディスクリプターが含まれている XML ファイルの提供を暗黙指定します。
このディスクリプターは、MBean がサポートするすべての属性、操作、および通知を WebSphere システムに知らせます。
この情報を使用して、WebSphere システムは、リモート要求を MBean へ経路指定し、
リモート・リスナーが MBean のイベント通知を受信するように登録できます。
すべての内部 WebSphere MBeans は、
モデル MBean パターンに従います。Pure Java クラスは、管理機能に実際の論理を提供し、WebSphere MBeanFactory クラス
は、XML MBean ディスクリプターからこれらの機能の記述を読み取り、
このディスクリプターと一致する ModelMBean のインスタンスを作成します。
この ModelMBean インスタンスは、Java クラスにバインドされ、ユーザーの
クラスと同じプロセスで稼働中の MBeanServer に登録されます。
これで、Java コードは、WebSphere Application Server 管理クライアント
を表すために作成および登録された ModelMBean を介して、その管理クライアントから呼び出し可能になります。
- オプションで、
明示的な MBean セキュリティー・ポリシーを定義します。
MBean セキュリティー・ポリシーを定義しない場合、WebSphere Application Server はデフォルトのセキュリティー・ポリシー を使用します。
- 新規の MBean を登録します。 MBean の登録には、さまざまな方法があります。
MBean は、WebSphere Application Server 管理サービスに登録することができます。
MBean は、WebSphere Application Server プロセス内の MBeanServer に登録することができます。
使用可能なオプションを以下に優先順にリストします。
- MBeanFactory クラスを使用します。
WebSphere Application Server システムとの最大限の統合を望む
場合は、MBeanFactory クラスを使用し、MBeanFactory クラスの activateMBean メソッドや deactivateMBean メソッドを介して、MBean のライフ・サイクルを管理します。
RuntimeCollaborator 抽象スーパークラスのサブクラス、
および XML MBean ディスクリプター・ファイルを提供することにより、これらのメソッドを使用します。
この方法を使用する場合は、MBean ディスクリプターで定義された管理インターフェースを
インプリメントする Pure Java クラスを提供します。
MBeanFactory クラスは、実際の ModelMBean を作成し、
ユーザーに代わって、WebSphere Application Server 管理システムに登録します。
モデル MBeans を登録する場合は、このオプションが推奨されます。
- JMXManageable および CustomService インターフェースを使用します。
CustomService インターフェースをインプリメントすると、JMXManageable インターフェースもインプリメントされます。
これにより、WebSphere 管理との統合プロセスがより容易になります。
この方法を使用することにより、RuntimeCollaborator を提供する必要がなくなります。
CustomService インターフェースが初期化されると、WebSphere MBeanFactory クラス
は、XML MBean ディスクリプター・ファイルを読み取り、MBean を
自動的に CustomService インターフェースに作成、バインド、および登録します。
CustomService の shutdown メソッドを呼び出すと、WebSphere システムは、MBean を
自動的に非アクティブにします。
- AdminService インターフェースを使用します。
AdminService インターフェース上で registerMBean() メソッドを呼び出すことができ、
その呼び出しは、適切なセキュリティー検査の後、そのプロセスの基礎と
なっている MBeanServer へ委任されます。
AdminServiceFactory クラスの getAdminService() メソッドを使用して、AdminService への参照を取得できます。
標準、動的、およびオープン MBeans を登録する場合は、このオプションが推奨されます。
UserCollaborator クラスをインプリメントして、
MBeans を使用し、分散プラットフォームおよび z/OS プラットフォームでこれらに対して一貫したサポート・レベルを提供します。
- MBeanServer インスタンスを直接取得します。
MBeanFactory クラスの getMBeanServer() メソッドを呼び出すことに
より、WebSphere Application Server プロセス内で稼働中の JMX MBeanServer インスタンス
への直接参照を取得することができます。
AdminService インターフェースの getMBeanFactory() メソッドを
呼び出すことで、MBeanFactory クラスへの参照を取得します。
カスタム MBean を MBean サーバーに直接登録する場合、
MBean オブジェクト名は、デフォルトで、セル、ノード、およびプロセス名の鍵で拡張されます。この登録により、MBean は、
WebSphere Application Server 管理システムの分散機能に組み込まれます。
また、com.ibm.websphere.mbeans.disableRouting カスタム・プロパティーを設定して、デフォルトの動作をオフにすることもできます。
結果
MBean の作成および登録に使用する方法に関係なく、新規の MBean コード用に、
適正な
Java 2 セキュリティー許可をセットアップする必要があります。WebSphere AdminService および MBeanServer は、Java 2 セキュリティー許可を使用して
厳重に保護されているので、自分のコード・ベースに許可を明示的に認可しないと、
これらのクラスのメソッドを呼び出そうとした場合に、セキュリティー例外が
スローされます。
MBean をアプリケーションの一部として提供している場合は、アプリケーション・
メタデータの一部として提供している
was.policy ファイル内に許可を
設定することができます。
CustomService インターフェース、または、アプリケーションとして配布されてい
ないその他のコードを使用している場合は、
ノード構成内の
library.policy ファイル、または特定のインストール用の
properties ディレクトリーにある
server.policy を編集することができます。