JGroupsの情報を外部から監視する方法
JGroupsの情報を外部からJMX経由で監視する方法です。(JMX経由の監視方法はこちらを参照のこと)
以下のサンプルでは、OSCache の設定と同一チャネルに接続して、情報を取得しています。
import java.io.InputStream; import java.lang.management.ManagementFactory; import java.util.Properties; import javax.management.MBeanServer; import org.jgroups.JChannel; import org.jgroups.jmx.JmxConfigurator; public class Observer { public static void main(String[] args) throws Exception { // クラスパス中の OSCache の定義ファイルから、JGroups 関連情報を引き出す。 InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("oscache.properties"); Properties props = new Properties(); props.load(is); // 必要があれば、JGroup 関連情報を加工する。 // 下記では、STATS プロトコルを追加している。 JChannel channel = new JChannel("STATS:" + props.getProperty("cache.cluster.properties")); // OSCache が使用している JGroups のバスに接続する。 channel.connect("OSCacheBus"); // 既存の MBeanServer を取得。既存のものがなければ、自作する。 MBeanServer server = ManagementFactory.getPlatformMBeanServer(); // MBeanServer に、チャネル情報を登録する。 JmxConfigurator.registerChannel(channel, server, "JGroups", channel.getClusterName(), true); } }