ヘッダーをスキップ
Oracle Coherence開発者ガイド
リリース3.5
B56039-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

21 JMXを使用したCoherenceの管理方法

Coherenceには、JMX(Java Management Extensions)APIを使用してリソースを管理および監視する機能があります。JMXは、Javaアプリケーションやサービスを管理および監視するためのJava標準であり、Java対応リソースを管理する一般的なソリューションを構築するための管理アーキテクチャ、設計パターン、APIおよびサービスを定義します。この項は、読者がJMXの用語に習熟していることを前提としています。JMXの経験がない場合は、最初に「Getting Started with Java Management Extensions (JMX): Developing Management and Monitoring Solutions」を参照してください。

JMXを使用してCoherenceを管理するには:


注意:

JMXのサポート:

Coherence Enterprise Edition以上では、クラスタ化されたJMXがサポートされます。これにより、任意のメンバーがクラスタ全体のJMXの統計にアクセスできるようになります。Coherence Standard Editionでは、ローカルのJMX情報のみ提供されます。


JMXライブラリのCoherenceクラスパスへの追加

JMXを使用してCoherenceクラスタを管理するには、少なくとも1つのCoherenceクラスタ・ノード(MBeanServerホストと呼ばれる)のクラスパスに、必要なJMX 1.0以上のクラス(javax.management.*)があることを確認してください。MBeanServerホストでないクラスタ・ノードは、MBeanServerホストでCoherenceのInvocationサービスを使用して管理されます。

Java SE 5.0 JREおよびJava EEに準拠したすべてのアプリケーション・サーバーでは、JMX 1.0以上の実装が提供されます。そのため、MBeanServerホスト・ノードがJava SE 5.0 JVMまたはJava EEアプリケーション・サーバー内で実行されている場合、追加の作業は必要ありません。Java SE 5.0 JVMより前の環境で実行されているスタンドアロンのアプリケーションについては、必要なJMXライブラリをJMXダウンロードWebサイトからダウンロードしてクラスパスに追加できます。

Coherenceの管理フレームワークの構成

ほとんどの場合、MBeanServerホストとして機能しているすべてのCoherenceクラスタ・ノードでJavaシステム・プロパティのtangosol.coherence.managementを設定し、すべてのクラスタ・ノードでtangosol.coherence.management.remoteを設定するだけでJMXの管理を有効にできます。

-Dtangosol.coherence.management=all

-Dtangosol.coherence.management.remote=true


一般的なパターンは専用のJMXクラスタ・メンバーを使用することです。このアプローチでは、1つ1つのクラスタ・メンバーにJMXソフトウェアがロードされることはありませんが、1つのJMXメンバーに問題が発生してもフォルト・トレランスは依然として提供されます。

Coherenceの管理フレームワークは一般に、Coherenceオペレーション・オーバーライド・コンフィギュレーション・デプロイメント・ディスクリプタ(tangosol-coherence-override.xml)にあるmanagement-configurationで構成します。管理フレームワークの動作は、次のサブ要素を使用して制御します。

表21-1 管理フレームワークの動作を制御する要素

要素 説明

allow-remote-management

このクラスタ・ノードで、自身のMBeanをリモートのMBeanServerに登録するかどうかを指定します。

domain-name

Coherenceの管理フレームワークで公開される、MBeanの登録に使用されるJMXドメイン名を指定します。

managed-nodes

クラスタ・ノードのJVMにインプロセスMBeanServerを設定するかどうか、また設定する場合は、そのノードに他ノードの管理オブジェクトの管理を許可するかどうかを指定します。有効な値は、none、local-only、remote-onlyおよびallです。たとえば、あるノードにインプロセスMBeanServerがあり、このノードで他ノードのMBeanを管理する場合は、この属性にallを設定します。

read-only

このクラスタ・ノードで公開されたMBeanに、実行時属性の変更操作を許可するかどうかを指定します。


これらの各属性の詳細は、付録H「オペレーション・コンフィギュレーションの要素」を参照してください。


注意:

Coherenceは、クラスタ全体のJVM統計を、追跡する他の統計と平行して表示するために、JavaプラットフォームMBeanを監視します。プラットフォームMBeanは、1.5 JVMの機能です。1.4 JVMで実行すると、次の例外が発生します。
The MBean query feature requires a local MBeanServer
   java.lang.NoClassDefFoundError: javax/management/MalformedObjectNameException

このメッセージは無視してかまいませんが、次のシステム・プロパティを使用して機能を無効化することもできます。

-Dtangosol.coherence.management.jvm.all=false

Coherence MBeanへのアクセス

Coherenceの管理フレームワークを構成して、1つ以上のCoherenceクラスタ・ノード(少なくとも1つはMBeanServerホスト)を起動したら、すべてのクラスタ・ノードで登録されたCoherence MBeanを標準のJMX APIコールを使用して表示および操作できます。Coherenceクラスタ・サービスで登録されている様々なMBeanタイプの詳細は、com.tangosol.net.management.RegistryクラスのJavadocを参照してください。

Coherenceには、JMXを使用したCoherence MBeanへのアクセス方法について説明している2つのサンプルが用意されています。最初に、JMX参照実装jmxtools.jar)の一部として同梱されているHttpAdapterを使用します。Java SE 5.0 JVMより前の環境でサンプルを実行するには、Windows上で次のコマンドを使用してCoherenceコマンドライン・アプリケーションを起動します(ここでは形式上複数行に分けて表示してありますが、実際は単一のコマンドとして1行に入力します)。

java -cp jmxri.jar;jmxtools.jar;coherence.jar
     -Dtangosol.coherence.management=all
     -Dtangosol.coherence.management.remote=true
      com.tangosol.net.CacheFactory

UNIXでは次のコマンドを実行します。

java -cp jmxri.jar:jmxtools.jar:coherence.jar
     -Dtangosol.coherence.management=all
     -Dtangosol.coherence.management.remote=true
      com.tangosol.net.CacheFactory

Coherenceコマンドライン・アプリケーションが起動したら、jmx 8082と入力して[Enter]を押します。クラスタ・ノードのJVMでhttp://localhost:8082上にHttpAdapterが起動され、そのクラスタ・ノードがMBeanServerホストになります。これで、HttpAdapter Webアプリケーションを使用して、すべてのクラスタ・ノードで登録されたCoherence MBeanを表示および操作できるようになります。

図21-1 ブラウザでのHttpAdapter Webアプリケーションの表示

この図の後に説明があります。
「図21-1 ブラウザでのHttpAdapter Webアプリケーションの表示」の説明

このサンプルをSun Java SE 5.0 JVMで実行すると、Sun Java SE 5.0 JDKに同梱のJConsoleユーティリティを使用してCoherence MBeanを表示および操作することもできます。そのためには、次のコマンドを使用してCoherenceコマンドライン・アプリケーションを起動します(ここでは形式上複数行に分けて表示してありますが、実際は単一のコマンドとして1行に入力します)。

java -Dcom.sun.management.jmxremote
     -Dtangosol.coherence.management=all
     -Dtangosol.coherence.management.remote=true
     -jar coherence.jar

Coherenceコマンドライン・アプリケーションが起動したら、(Sun Java SE 5.0 JDKディストリビューションのbinディレクトリにある)JConsoleユーティリティを起動して、Coherenceコマンドライン・アプリケーションを実行しているJVMへの新しい接続を確立します。

図21-2 JConsoleユーティリティを使用したCoherence MBeanの表示および操作

この図の後に説明があります。
「図21-2 JConsoleユーティリティを使用したCoherence MBeanの表示および操作」の説明

2番目のサンプルは、JMX APIコールを使用して、実行中の各Coherenceキャッシュの基本的な情報を表示するJSPページ(JmxCacheExplorer.jsp)です。このサンプルは、Coherenceインストールのルートの下のexamples/jsp/exploreにあります。

その他のJMXのサンプルについては、Coherenceのフォーラムを参照してください。

Coherence MBeanConnectorを使用したMBeanへのアクセス

Coherenceには、クラスタ・ノードを専用のMBeanServerホストとして起動するためのプログラムが用意されています。このプログラムは、SunのJMX RIで提供されるRMIまたはHTTPサーバーを介してJMX Remote APIを使用することにより、Coherence MBeanへのアクセスを提供しています。RMIおよびHTTPポートはユーザーが構成可能で、ファイアウォールを経由してアクセスできます。次のコマンドを使用してサーバーを起動します(ここでは形式上複数行に分けて表示してありますが、実際は単一のコマンドとして1行に入力します)。

java -Dtangosol.coherence.management=all
     -cp coherence.jar com.tangosol.net.management.MBeanConnector [-http -rmi]

JMX RMIを介したアクセスを許可するには、-rmiフラグを指定します。HTTPおよびWebブラウザを介したアクセスを許可するには、-httpフラグを指定します。両方のフラグを指定することも可能ですが、ノードの起動には少なくとも1つが必要です。

表21-2は、JMX RMIの構成に使用できるオプションのプロパティについて説明しています。

表21-2 JMX RMIの構成に使用できるオプションのプロパティ

プロパティ 説明

tangosol.coherence.management.remote.host

JMXサーバーがバインドするホスト。デフォルトはlocalhostです。(注意: Redhat Linuxでは、これをホスト名またはIPアドレスに変更する必要がある場合があります。)

tangosol.coherence.management.remote.registryport

JMX RMIのレジストリに使用するポート。デフォルトは9000です。

tangosol.coherence.management.remote.connectionport

JMX RMIの接続に使用するポート。デフォルトは3000です。


表21-3は、HTTPの構成に使用できるオプションのプロパティについて説明しています。(注意: このフラグでは、クラスパスにSunのJMX RIが必要です。)

表21-3 HTTPの構成に使用できるオプションのプロパティ

プロパティ 説明

tangosol.coherence.management.remote.httpport

HTTPの接続に使用するポート。デフォルトは8888です。


JConsoleを使用してデフォルト設定で接続するには、次のコマンドを使用します。

jconsole service:jmx:rmi://localhost:3000/jndi/rmi://localhost:9000/server

HTTPを使用してデフォルト設定で接続するには、次のURLを使用します。

http://localhost:8888

管理情報のリフレッシュ方法の構成

Coherenceの現在のリリースには、管理情報の待機時間を低減させるいくつかの方法が用意されています。Coherence 3.3で導入されたリフレッシュ・ポリシーを使用すると、リモート管理ノードからの情報の取得を最適化できます。インテグレータおよび管理者がこのリフレッシュ・ポリシーを構成するのに役立つ、2つの新しい設定が追加されています。

tangosol.coherence.management.refresh.expiryプロパティは、リモート・ノードの管理情報をリモートで取得する最小間隔を指定します。

-Dtangosol.coherence.management.refresh.expiry

この要素の値は、次の形式で指定する必要があります。

[\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?

前述の文字は(左から右へ)それぞれ、次の時間間隔の単位を示しています。

値に単位が含まれていない場合は、ミリ秒が単位として適用されます。

tangosol.coherence.management.refresh.policyプロパティは、MBeanのリフレッシュ・ポリシーを定義します。

-Dtangosol.coherence.management.refresh.policy

表21-4は、このプロパティの有効な値について説明しています。

表21-4 tangosol.coherence.management.refresh.policyプロパティの値

設定 説明

refresh-ahead(デフォルト)

有効期間が経過した後、リクエストされる前に、MBeanが前の使用パターンに基づいてリフレッシュされます。この設定は、ネットワーク消費量を多少増加させることで管理情報の待機時間を低減します。MBeanが繰返しまたはプログラム的にアクセスされる場合に最適です。

refresh-behind

データがアクセスされた後、それぞれのMBeanがリフレッシュされます。この方法では最適なレスポンス・タイムが確保されます。ただし返される情報は、最後のリフレッシュ時刻からのオフセットになります。

refresh-expired

この設定の機能は、Coherenceリリース3.4より前のものと同じです。MBeanがアクセスされ、最後のリフレッシュから有効期間が経過すると、それぞれのMBeanがリモート・ノードからリフレッシュされます。この設定は、MBeanがランダムなパターンでアクセスされる場合に最適です。