Coherenceでは、管理フレームワーク内でカスタムMBeanを管理および監視できます。カスタムMBeanは、アプリケーション固有のMBeanです(JavaプラットフォームのMBeanを含む)。カスタムMBeanは、XMLファイルで宣言的にCoherence MBeanサーバーに登録されるか、プログラム的にCoherence MBeanサーバーに登録されます。
カスタムMBeanとCoherence MBeanを統合することで、管理者は、クラスタ内に存在するすべてのメンバーのシステム情報とアプリケーション情報を1つの場所から更新および表示できます。
この章には次の項が含まれます:
カスタムMBeanは、custom-mbeans.xml
という名前のMBean構成オーバーライド・ファイル内で宣言的に登録されます。Coherenceでは、実行時に、クラスパスで最初に見つかったcustom-mbeans.xml
ファイルが使用されます。構成の詳細は、『Oracle Coherence開発者ガイド』を参照してください。MBeanの登録には、MBeanのクラス名、MBeanファクトリのいずれかを使用するか、問合せを実行してMBeanを特定します。
注意: カスタムMBeanは、実行時に必ず検出される必要があります。MBean(または、MBeanを含むライブラリ)は、Coherenceメンバー(JMX管理が有効化されているメンバーを含む)のクラスパスに配置してください。 |
この項には、次のトピックが含まれます:
custom-mbeans.xml
ファイルを使用して、オペレーション・デプロイメント・ディスクリプタの<mbeans
要素を上書きします。そのため、ルート要素は<mbeans
要素である必要があります。<mbeans
要素内で定義可能な要素の詳細は、『Oracle Coherence開発者ガイド』を参照してください。
MBean構成オーバーライド・ファイルを作成する手順は次のとおりです。
テキスト・ファイルを作成し、custom-mbeans.xml
として保存します。
次のようにファイルを編集して空の<mbeans>
ノードを作成します。
<mbeans> </mbeans>
ファイルを保存して閉じます。
カスタムMBean構成オーバーライド・ファイルの場所が実行時にクラスパス内にあり、coherence.jar
ライブラリより前にあることを確認します。
次の例では、COHERENCE_HOME
にあるcustom-mbeans.xml
ファイルを使用するキャッシュ・サーバーを起動します。
java -cp COHERENCE_HOME;COHERENCE_HOME\lib\coherence.jar com.tangosol.net.DefaultCacheServer
<mbean-class>
要素を使用して、完全修飾されたMBeanのクラス名を使用したMBeanの登録とインスタンス化を行います。次の例では、com.MyMBean
という名前のMBeanを登録して、そのMBeanにtype=application
というオブジェクト名を付けます。
<mbeans> <mbean id="100"> <mbean-class>com.MyMBean</mbean-class> <mbean-name>type=application</mbean-name> <enabled>true</enabled> </mbean> </mbeans>
構成されると、MBeanをリモートで管理できるようになり、オブジェクト名の一部として特定されたメンバーが組み込まれます。したがって、MBeanの登録時の完全オブジェクト名は次のようになります。
Coherence:type=application,nodeId=
<nodeId>
<mbean-factory>
要素および<mbean-accessor>
要素を使用して、ファクトリ・クラスからMBeanを登録およびインスタンス化します。次の例では、java.lang.management.ManagementFactory
クラスのgetMemoryMXBean
アクセッサ・メソッドを使用してJavaプラットフォームのMemoryMXBean
MBeanを登録し、そのMBeanにtype=java,SubSystem=Memory
というオブジェクト名を付けます。
<mbeans> <mbean id="2"> <mbean-factory>java.lang.management.ManagementFactory</mbean-factory> <mbean-accessor>getMemoryMXBean</mbean-accessor> <mbean-name>type=java,SubSystem=Memory</mbean-name> <enabled>true</enabled> </mbean> </mbeans>
構成されると、MBeanをリモートで管理できるようになり、オブジェクト名の一部として特定されたメンバーが組み込まれます。したがって、MBeanの登録時の完全オブジェクト名は次のようになります。
Coherence:type=java,SubSystem=Memory,nodeId=
<nodeId>
<mbean-query>
要素を使用して、MBeanを登録およびインスタンス化する際にMBeanサーバーを問い合せます。デフォルトでは、メンバーのデフォルトのMBeanサーバーが問い合せられますが、別のMBeanサーバーを指定することもできます。次の例では、メンバーのデフォルトのMBeanサーバーに対してjava.lang:*
問合せを実行して、登録するMBeanを見つけます。
<mbeans> <mbean id="3"> <mbean-query>java.lang:*</mbean-query> <mbean-name>type=Platform</mbean-name> <enabled>true</enabled> </mbean> <mbeans>
メンバーのデフォルトのMBeanサーバー以外のMBeanサーバーを指定するには、<mbean-server-domain>
要素を使用してMBeanサーバーのデフォルト・ドメイン名を入力します。次に例を示します。
<mbeans> <mbean id="3"> <mbean-query>java.lang:*</mbean-query> <mbean-server-domain>MyDomain</mbean-server-domain> <mbean-name>type=Platform</mbean-name> <enabled>true</enabled> </mbean> </mbeans>
tangosol.coherence.mbeans
システム・プロパティでは、デフォルトのオーバーライド・ファイルcustom-mbeans.xml
のかわりに使用されるMBean構成オーバーライド・ファイルを指定します。次に例を示します。
-Dtangosol.coherence.mbeans=my-mbeans.xml
クラスパスにファイルがない場合は、ファイルのフルパス(または相対パス)とファイル名を入力します。このシステム・プロパティでMBean構成オーバーライド・ファイルの場所を指定するときには、URLを使用することもできます。
デフォルトでは、Coherenceとともに登録されたカスタムMBeanは、JMX管理が有効化されたすべてのクラスタ・メンバーから参照できます。リモート・クラスタ・メンバーからMBeanを参照できないように制限するには、<local-only>
要素をtrue
に設定します。この場合は、MBeanがローカルMBeanサーバーにのみ登録されます。次に例を示します。
<mbeans> <mbean id="100"> <mbean-class>com.MyMBean</mbean-class> <mbean-name>type=application</mbean-name> <local-only>true</local-only> <enabled>true</enabled> </mbean> </mbeans>
com.tangosol.net.management.Registry
インタフェースを使用してカスタムMBeanをプログラム的に登録します。次の例では、register
メソッドを使用して標準的なMBeanをCoherenceに登録します。Registry
インタフェースの詳細は、Oracle Coherence Java APIリファレンスを参照してください。
Registry registry = CacheFactory.ensureCluster().getManagement(); Custom bean = new Custom(); String sName = registry.ensureGlobalName("type=Custom"); registry.register(sName, bean);
静的MBean名の使用方法
この例では、カスタムMBeanをCoherenceに追加する際にensureGlobalName
メソッドを使用しています。このメソッドは、nodeId=...
の部分をMBeanのObjectName
の末尾に追加するために使用します。ノードIDの名前は、中央のMBeanサーバーで一意である必要があります。アプリケーションに静的MBean名が必要な場合は、MBean問合せを使用して、ローカルのMBeanサーバーからCoherence管理システムにMBeanを追加します。静的な名前を持つ管理対象メンバーにMBeanを作成した上で、管理メンバーでの集約時にそのMBeanの名前に,nodeId=...
という部分が追加されます。
静的MBean名を使用する手順は次のとおりです。
クラスタに参加する前に、registerMBean
またはcreateMBean
メソッドを使用して、管理対象メンバーのローカルMBeanサーバーにMBeanを登録します。これらのメソッドの使用の詳細は、MBeanServer
インタフェースに関するJavadocを参照してください。
http://java.sun.com/j2se/6/docs/api/javax/management/MBeanServer.html
MBeanHelper.findMBeanServer()
メソッドを使用して、Coherenceが使用しているものと同じMBeanサーバーを取得します。
新規登録したMBeanを問い合せるようcustom-mbeans.xml
ファイルを構成します。「問合せを使用したMBeanの登録」を参照してください。
注意: ローカルMBeanサーバーにアクセスできるように環境が適切に設定されていることを確認するには、次のSunのドキュメントを参照してください。
|