[jboss-user] [JBoss Cache: Core Edition] - Use the correct MBeanServer if multiple MBeanServers are pre

vrsn-rbuck do-not-reply at jboss.com
Wed Jul 23 09:29:43 EDT 2008


The prior bug did not fix the issue of running the cache under jboss when the following options are present:

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote
  | 

The code is presently as follows (which is incorrect, by the way):


  | 158    if(servers == null || servers.size() == 0)
  | 159            throw new Exception("TreeCacheView.init(): no MBeanServers found");
  | 160    srv=(MBeanServer)servers.get(0);
  | 161    log.info("init(): found MBeanServer " + srv);
  | 162    cache=(TreeCacheMBean)MBeanProxyExt.create(
  |                  TreeCacheMBean.class, cache_service, srv);

TreeCacheView fails to deploy because it is using the wrong MBeanServer. Rather than doing the above, you should either do something like:


  |    import org.jboss.mx.util.MBeanServerLocator;
  |    ...
  |    // find the local MBeanServer
  |    MBeanServer server = MBeanServerLocator.locateJBoss();
  | 

, or you should do something like this:

    public static MBeanServer getDefaultMBeanServer() {
  |         return findMBeanServer("jboss");
  |     }
  | 
  |     private static MBeanServer findMBeanServer(String agentId) {
  |         List servers = MBeanServerFactory.findMBeanServer(null);
  |         if (servers != null && servers.size() > 0) {
  |             for (Object object : servers) {
  |                 MBeanServer server = (MBeanServer) object;
  |                 if (server.getDefaultDomain().equals(agentId)) {
  |                     return server;
  |                 }
  |             }
  |         }
  |         return null;
  |     }

The reason is because with Java 5, when the "-Dcom.sun.management.jmxremote" switch is turned on, the default platform MBeanServer is the zeroth instance rather than "jboss".

See:

http://fisheye.jboss.com/browse/JBossCache/core/support-branches/1.4.1.SP8_JBCACHE-1247/src/org/jboss/cache/TreeCacheView.java?r=4384

To test, deploy the tree cache view, and start JBoss with the JAVA_OPTS mentioned above. 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4166141#4166141

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4166141



More information about the jboss-user mailing list