[jboss-dev-forums] [Design of JBoss Remoting, Unified Invokers] - Re: Duplicate mbean removal
ron.sigal@jboss.com
do-not-reply at jboss.com
Wed Oct 24 16:39:07 EDT 2007
This is related to changes I made for JBREM-747 "org.jboss.remoting.transport.Connector should unregister server invoker from MBeanServer".
Connector.init(), which is called from Connector.create(), used to have the code
| ObjectName objName = new ObjectName(invoker.getMBeanObjectName());
| if (!server.isRegistered(objName))
| {
| server.registerMBean(invoker, objName);
| invoker.setMBeanServer(server);
| }
|
The problem was that when a Connector stops and restarts, it sees that it's already registered, doesn't pass the MBeanServer to the invoker, and the invoker is unable to see other MBeans. So I changed it to
| ObjectName objName = new ObjectName(invoker.getMBeanObjectName());
| if (!server.isRegistered(objName))
| {
| server.registerMBean(invoker, objName);
| }
| else
| {
| log.warn(objName + " is already registered with MBeanServer");
| }
| invoker.setMBeanServer(server);
|
I also added
| if (server != null)
| {
| try
| {
| ObjectName objName = new ObjectName(invoker.getMBeanObjectName());
| server.unregisterMBean(objName);
| }
| catch (Exception e)
| {
| log.error("invalid Object Name", e);
| }
| }
|
to Connector.stop().
I'm confused. Judging from the original code, Connector clearly expects to register itself. And since Connector is registering itself, I thought it should also unregister itself.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4098555#4098555
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4098555
More information about the jboss-dev-forums
mailing list