- PR -

MBeanの解除/再登録の方法

1
投稿者投稿内容
まりすけ
会議室デビュー日: 2005/02/10
投稿数: 1
投稿日時: 2005-02-10 21:19
いつも参考にさせていただいております。

早速ですが、
JMXのMBeanを解除/再登録する方法をご存知の方がおりましたら、教えてください。

現在、下記の方法で既に同名のMBeanが存在しないかチェックをおこない、
存在していれば解除し、その後再登録処理をおこなっております。
MBeanの解除とMBeanServerへの登録までは正常に実行できるのですが、
コネクタースタートの箇所で、例外エラーが発生します。

この例外を防ぐ解決策はあるのでしょうか?
よろしくお願いいたします。

---- ソース ---------------------------------------------------------------
// サンプルのMBeanとそのオブジェクト名
SampleMBean sample = new SampleMBean();
ObjectName objName = new ObjectName("MBean:name=Sample");

// コネクター生成・接続
JMXServiceURL jmx_url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost/sample/");
JMXConnector connector = JMXConnectorFactory.connect(, null);
MBeanServerConnection connection = connector.getMBeanServerConnection();
if(connection.isRegistered(objName)) {
// 解除
connection.unregisterMBean(objName);
}
// 再登録
MBeanServer mserver = MBeanServerFactory.createMBeanServer();
mserver.registerMBean(sample, objName);

// コネクタースタート
connector.start();
---------------------------------------------------------------------------

---- 例外エラー -----------------------------------------------------------
java.io.IOException: Cannot bind to URL [rmi://localhost/sample/]: javax.naming.NameAlreadyBoundException: sample/ [Root exception is java.rmi.AlreadyBoundException: sample/]
at javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:814)
at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:431)

---------------------------------------------------------------------------
1

スキルアップ/キャリアアップ(JOB@IT)