[jboss-jira] [JBoss JIRA] Commented: (JBCACHE-1392) Use the correct MBeanServer if multiple MBeanServers are present.

Manik Surtani (JIRA) jira-events at lists.jboss.org
Tue Jul 22 18:21:15 EDT 2008


    [ https://jira.jboss.org/jira/browse/JBCACHE-1392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12422169#action_12422169 ] 

Manik Surtani commented on JBCACHE-1392:
----------------------------------------

No worries - please start one and lets chat there.

> Use the correct MBeanServer if multiple MBeanServers are present.
> -----------------------------------------------------------------
>
>                 Key: JBCACHE-1392
>                 URL: https://jira.jboss.org/jira/browse/JBCACHE-1392
>             Project: JBoss Cache
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: JMX
>            Reporter: Robert Buck
>            Assignee: Manik Surtani
>
> 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):
> {code}
> 157 List servers=MBeanServerFactory.findMBeanServer(null);
> 158 if(servers == null || servers.size() == 0)
> 159 throw new Exception("TreeCacheView.init(): no MBeanServers found");
> {code}
> TreeCacheView fails to deploy because it is using the wrong MBeanServer. Rather than doing the above, you should either do something like:
> {code}
>    import org.jboss.mx.util.MBeanServerLocator;
>    ...
>    // find the local MBeanServer
>    MBeanServer server = MBeanServerLocator.locateJBoss();
> {code}
> , or you should do something like this:
> {code}
>     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;
>     }
> {code}
> 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. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list