Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

org.objectweb.cjdbc.controller.jmx.MBeanServerManager Class Reference

List of all members.

Static Public Member Functions

synchronized MBeanServer getInstance ()
boolean isJmxEnabled ()
void setJmxEnabled (boolean isJmxEnabled) throws JmxException
ObjectInstance registerMBean (Object object, ObjectName name) throws JmxException
void unregister (ObjectName name) throws JmxException

Static Package Attributes

Trace logger

Detailed Description

The MBeanServerManager (Singleton) creates a single MBeanServer in an JVM. The server can be accessed with the getInstance() method.

The server is created with org.objectweb.cjdbc.controller.jmx.MBeanServerBuilder

Author:
Marc Wick
Version:
1.0

Definition at line 49 of file MBeanServerManager.java.


Member Function Documentation

synchronized MBeanServer org.objectweb.cjdbc.controller.jmx.MBeanServerManager.getInstance  )  [static]
 

creating a MBeanServer, if it does not exist, otherwise a reference to the MBeanServer is returned

Returns:
the mbeanserver instance, null if jmx is disabled

Definition at line 64 of file MBeanServerManager.java.

00065   {
00066 
00067     if (!isJmxEnabled)
00068     {
00069       return null;
00070     }
00071 
00072     if (mbs != null)
00073     {
00074       return mbs;
00075     }
00076 
00077     String defaultServerBuilder = System
00078         .getProperty("javax.management.builder.initial");
00079 
00080     if (!MBeanServerBuilder.class.getName().equals(defaultServerBuilder))
00081     {
00082       if (defaultServerBuilder != null)
00083         logger.error("property javax.management.builder.initial was "
00084             + defaultServerBuilder);
00085 
00086       logger.debug("setting property javax.management.builder.initial");
00087       System
00088           .setProperty("javax.management.builder.initial",
00089               org.objectweb.cjdbc.controller.jmx.MBeanServerBuilder.class
00090                   .getName());
00091 
00092     }
00093 
00094     mbs = MBeanServerFactory.createMBeanServer();
00095     return mbs;
00096   }

boolean org.objectweb.cjdbc.controller.jmx.MBeanServerManager.isJmxEnabled  )  [static]
 

Returns the isJmxEnabled value.

Returns:
Returns the isJmxEnabled.

Definition at line 103 of file MBeanServerManager.java.

00104   {
00105     return isJmxEnabled;
00106   }

ObjectInstance org.objectweb.cjdbc.controller.jmx.MBeanServerManager.registerMBean Object  object,
ObjectName  name
throws JmxException [static]
 

Registers an MBean with the MBean server if jmx is enabled, otherwise it returns null.

This method is equivalend to

 MBeanServer server = MBeanServerManager.getInstance();
 if (server != null)
 {
   server.registerMBean(object, name);
 }
 

Parameters:
object The MBean to be registered as an MBean.
name The object name of the MBean. May be null.
Returns:
An ObjectInstance, containing the ObjectName and the Java class name of the newly registered MBean. If the contained ObjectName is n, the contained Java class name is getMBeanInfo(n).getClassName(). Or null if jmx is disabled
Exceptions:
JmxException the object could not be registered

Definition at line 163 of file MBeanServerManager.java.

00165   {
00166     MBeanServer server = getInstance();
00167     try
00168     {
00169 
00170       if (server != null)
00171       {
00172         logger.debug(Translate.get("jmx.register.mbean", new String[]{
00173             object.getClass().toString(), name.getCanonicalName()}));
00174 
00175         ObjectInstance objInstance = null;
00176         if (!server.isRegistered(name))
00177         {
00178           objInstance = server.registerMBean(object, name);
00179         }
00180         else
00181         {
00182           logger.error(Translate.get("jmx.register.mbean.already.exist",
00183               new String[]{name.getCanonicalName()}));
00184           try
00185           {
00186             server.unregisterMBean(name);
00187           }
00188           catch (Exception e)
00189           {
00190             logger.error(Translate.get("jmx.delete.mbean.failed", new String[]{
00191                 name.toString(), e.getMessage()}));
00192           }
00193           objInstance = server.registerMBean(object, name);
00194         }
00195 
00196         logger.debug(Translate.get("jmx.server.mbean.count", ""
00197             + server.getMBeanCount()));
00198         return objInstance;
00199       }
00200       return null;
00201     }
00202     catch (Exception e)
00203     {
00204       logger.error(Translate.get("jmx.register.mbean.failed",
00205           new String[]{object.getClass().toString(), e.getMessage(),
00206               e.getClass().toString()}));
00207       e.printStackTrace();
00208       e.getCause().printStackTrace();
00209       throw new JmxException(e);
00210     }
00211   }

void org.objectweb.cjdbc.controller.jmx.MBeanServerManager.setJmxEnabled boolean  isJmxEnabled  )  throws JmxException [static]
 

enable or disable jmx

Parameters:
isJmxEnabled The isJmxEnabled to set.
Exceptions:
JmxException an exception

Definition at line 114 of file MBeanServerManager.java.

References org.objectweb.cjdbc.controller.jmx.HttpAdaptor.stop(), and org.objectweb.cjdbc.controller.jmx.RmiConnector.stop().

00115   {
00116     if (MBeanServerManager.isJmxEnabled != isJmxEnabled && !isJmxEnabled && mbs!=null)
00117     {
00118       // stop rmi connectors
00119       List list = RmiConnector.getRmiConnectors();
00120       for (Iterator it = list.iterator(); it.hasNext();)
00121       {
00122         RmiConnector rmi = (RmiConnector) it.next();
00123         rmi.stop();
00124       }
00125 
00126       // stop http adaptors
00127       list = HttpAdaptor.getHttpAdaptors();
00128       for (Iterator it = list.iterator(); it.hasNext();)
00129       {
00130         HttpAdaptor http = (HttpAdaptor) it.next();
00131         http.stop();
00132       }
00133       // Stop mbean server
00134       MBeanServerFactory.releaseMBeanServer(mbs);
00135       mbs = null;
00136     }
00137     // set jmx enabled to its value
00138     MBeanServerManager.isJmxEnabled = isJmxEnabled;
00139   }

void org.objectweb.cjdbc.controller.jmx.MBeanServerManager.unregister ObjectName  name  )  throws JmxException [static]
 

unregister an mbean.

Parameters:
name the name of the bean to unregister
Exceptions:
JmxException problems

Definition at line 219 of file MBeanServerManager.java.

00220   {
00221     MBeanServer server = getInstance();
00222     if (server != null)
00223     {
00224       try
00225       {
00226         // unregister the MBean
00227         server.unregisterMBean(name);
00228         logger.debug(Translate.get("jmx.server.mbean.count", ""
00229             + server.getMBeanCount()));
00230 
00231       }
00232       catch (Exception e)
00233       {
00234         logger.error(Translate.get("jmx.register.mbean.failed", new String[]{
00235             name.getCanonicalName(), e.getMessage()}));
00236         throw new JmxException(e);
00237       }
00238     }
00239   }


Member Data Documentation

Trace org.objectweb.cjdbc.controller.jmx.MBeanServerManager.logger [static, package]
 

Initial value:

 Trace
                                              .getLogger("org.objectweb.cjdbc.controller.jmx.MBeanServer")

Definition at line 52 of file MBeanServerManager.java.


The documentation for this class was generated from the following file:
Generated on Mon Apr 11 22:03:52 2005 for C-JDBC by  doxygen 1.3.9.1