- - PR -
MBeanの解除/再登録の方法
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