geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dain Sundstrom <d...@iq80.com>
Subject Re: Problem in org.apache.geronimo.system.jmx.RealMBeanServerReference
Date Wed, 27 Jun 2007 19:50:33 GMT
This constructor is for the case when you know the agent id.  There  
used to be a case where we created an MBeanServer and then referenced  
it later.  In that case, we knew the agent id, so to guarantee that  
we got the same mbean server, I wrote this code.

I'm not sure it is used anymore.  In any case, you could add a no arg  
constructor that finds the mbean server as you have coded.

-dain

On Jun 27, 2007, at 5:05 AM, Vamsavardhana Reddy wrote:

> I see the following constructor:
>
>     public RealMBeanServerReference(String mbeanServerId) throws  
> MBeanServerNotFound {
>         ArrayList servers = MBeanServerFactory.findMBeanServer 
> (mbeanServerId);
>         if ( servers.size() == 0) {
>             mbeanServer = MBeanServerFactory.createMBeanServer 
> ("geronimo");
>         } else if (servers.size() > 1) {
>             throw new MBeanServerNotFound(servers.size() + "  
> MBeanServers were found with the agent id " + mbeanServerId);
>         } else {
>             mbeanServer = (MBeanServer) servers.get(0);
>         }
>     }
>
> I guess the intention of this code is to use a single MBeanServer  
> for all geronimo MBeans and the default domain for that MBeanServer  
> be "geronimo".  MBeanServerFactory.createMBeanServer() takes domain  
> as parameter.  Whereas MBeanServerFactory.findMBeanServer() takes  
> AgentId.  There is no (easy) way to create an MBeanServer with a  
> predefined agentId.  Does this mean mbeanServerId parameter is  
> redundant?  Should this code be searching for an MBeanServer with  
> default domain "geronimo" and creating one if there is none?  In  
> this case, the code should look something like...
>
>    public RealMBeanServerReference(String mbeanServerId) throws  
> MBeanServerNotFound {
>         ArrayList servers = MBeanServerFactory.findMBeanServer(null);
>         for(int i = 0; i < servers.size(); ++i) {
>             if("geronimo".equals(((MBeanServer) servers.get 
> (i)).getDefaultDomain()))
>                 mbeanServer = (MBeanServer) servers.get(i);
>         }
>         if(mbeanServer == null) mbeanServer =  
> MBeanServerFactory.createMBeanServer("geronimo");
>     }
>
> I am also noticing that if I create a new JMX agent by specifiying  
> the system property com.sun.management.jmxremote.port, geronimo  
> hooks up to the MBeanServer created with default domain name  
> "DefaultDomain" instead of creating a new one for itself with  
> default domain "geronimo".
>
> Vamsi


Mime
View raw message