FileDocCategorySizeDatePackage
MEJBHelper.javaAPI DocGlassfish v2 API14897Fri May 04 22:25:44 BST 2007com.sun.enterprise.management.agent

MEJBHelper

public class MEJBHelper extends Object
ejbHome
<{com.sun.enterprise.management.agent.MEJBHome}>
ejbRemote
<{com.sun.enterprise.management.agent.MEJB}>
author
Sreenivas Munnangi

Fields Summary
private MBeanServerConnection
server
private static MEJBHelper
mejbHelper
private ListenerRegistry
listenerRegistry
static Logger
_logger
Constructors Summary
private MEJBHelper()


    // default constructor
      

	/**
	 * This code has been added so that
	 * any access to MejbApp will be routed to DAS' MEjbApp transparently
	 *
	 * If the instance is DAS then continue to use the same mBean server
	 *
	 * If the instance is not DAS, meaning now this is running in a server instance
	 * then get jmx connector to the corresponding DAS and obtain
	 * the mBeanServerConnection. Now on use this DAS' mBeanServerConnection as
	 * wherever mBeanServer is referred.
	 */

	AdminContext adminContext = MBeanRegistryFactory.getAdminContext();
	ConfigContext configContext = adminContext.getRuntimeConfigContext();
	String serverName = adminContext.getServerName();

        try {
	  // check if DAS
	  boolean isDas = ServerHelper.isDAS(configContext, serverName);
	  if (isDas) {
	    // DAS instance
            ArrayList mbservers = (ArrayList) AccessController.doPrivileged(
		new PrivilegedAction() {
                    public java.lang.Object run() {
                        return MBeanServerFactory.findMBeanServer(null);
                    }
                });
            if (mbservers.isEmpty()) {
                server = null;
            }
            else {
                server = (MBeanServer)mbservers.get(0);
            }
	  } else {
	    // non DAS instance
	    server = null;
	    Server dasSrv = ServerHelper.getDAS(configContext);
	    String dasName = dasSrv.getName();
	    MBeanServerConnection mbsc = ServerHelper.connect(configContext, dasName);
	    if (mbsc != null) {
		server = mbsc;
	    }
	  }
	} catch (Exception e) {
              _logger.log(Level.WARNING, "MEJBHelper.exception_determining_mbean_server_connection");
	}
    
Methods Summary
public java.lang.ObjectgetAttribute(javax.management.ObjectName name, java.lang.String attribute)
Gets the value of a specific attribute of a named MBean. The MBean is identified by its object name.

param
name The object name of the MBean from which the attribute is to be retrieved.
param
attribute A String specifying the name of the attribute to be retrieved.
return
The value of the retrieved attribute.
exception
AttributeNotFoundException The attribute specified is not accessible in the MBean.
exception
MBeanException Wraps an exception thrown by the MBean's getter.
exception
InstanceNotFoundException The MBean specified is not registered in the MBean server.
exception
ReflectionException Wraps a java.lang.Exception thrown when trying to invoke the setter.
exception
RuntimeOperationsException Wraps a java.lang.IllegalArgumentException: The object name in parameter is null or the attribute in parameter is null.

            return server.getAttribute(name, attribute);
    
public javax.management.AttributeListgetAttributes(javax.management.ObjectName name, java.lang.String[] attributes)
Enables the values of several attributes of a named MBean. The MBean is identified by its object name.

param
name The object name of the MBean from which the attributes are retrieved.
param
attributes A list of the attributes to be retrieved.
return
The list of the retrieved attributes.
exception
InstanceNotFoundException The MBean specified is not registered in the MBean server.
exception
ReflectionException An exception occurred when trying to invoke the getAttributes method of a Dynamic MBean.
exception
RuntimeOperationsException Wrap a java.lang.IllegalArgumentException: The object name in parameter is null or attributes in parameter is null.

       return server.getAttributes(name, attributes);     
    
public java.lang.StringgetDefaultDomain()
Returns the default domain used for naming the managed object. The default domain name is used as the domain part in the ObjectName of managed objects if no domain is specified by the user.

        return server.getDefaultDomain();
    
public ListenerRegistrationgetListenerRegistry()

        if (listenerRegistry == null) {
            try {
                listenerRegistry = new ListenerRegistry(java.net.InetAddress.getLocalHost().getHostAddress());
            } catch (java.net.UnknownHostException e) {
                listenerRegistry = new ListenerRegistry(J2EEModuleUtil.getDomainName());
            }
        }
        return listenerRegistry;
    
public java.lang.IntegergetMBeanCount()
Returns the number of MBeans registered in the MBean server.

        return server.getMBeanCount();
    
public javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName name)
This method discovers the attributes and operations that an MBean exposes for management.

param
name The name of the MBean to analyze
return
An instance of MBeanInfo allowing the retrieval of all attributes and operations of this MBean.
exception
IntrospectionException An exception occurs during introspection.
exception
InstanceNotFoundException The MBean specified is not found.
exception
ReflectionException An exception occurred when trying to invoke the getMBeanInfo of a Dynamic MBean.

        return server.getMBeanInfo(name);
    
public static com.sun.enterprise.management.agent.MEJBHelpergetMEJBHelper()

        if(mejbHelper == null){
            mejbHelper = new MEJBHelper();
        }
        return mejbHelper;
    
public java.lang.Objectinvoke(javax.management.ObjectName name, java.lang.String operationName, java.lang.Object[] params, java.lang.String[] signature)
Invokes an operation on an MBean.

param
name The object name of the MBean on which the method is to be invoked.
param
operationName The name of the operation to be invoked.
param
params An array containing the parameters to be set when the operation is invoked
param
signature An array containing the signature of the operation. The class objects will be loaded using the same class loader as the one used for loading the MBean on which the operation was invoked.
return
The object returned by the operation, which represents the result ofinvoking the operation on the MBean specified.
exception
InstanceNotFoundException The MBean specified is not registered in the MBean server.
exception
MBeanException Wraps an exception thrown by the MBean's invoked method.
exception
ReflectionException Wraps a java.lang.Exception thrown while trying to invoke the method.

        return server.invoke(name, operationName, params, signature);
    
public booleanisRegistered(javax.management.ObjectName name)
Checks whether an MBean, identified by its object name, is already registered with the MBean server.

param
name The object name of the MBean to be checked.
return
True if the MBean is already registered in the MBean server, false otherwise.

        return server.isRegistered(name);
    
public java.util.SetqueryNames(javax.management.ObjectName name, javax.management.QueryExp query)
Gets the names of managed objects controlled by the MEJB. This method enables any of the following to be obtained: The names of all managed objects, the names of a set of managed objects specified by pattern matching on the ObjectName and/or a Query expression, a specific managed object name (equivalent to testing whether an managed object is registered). When the object name is null or no domain and key properties are specified, all objects are selected (and filtered if a query is specified). It returns the set of ObjectNames for the managed objects selected.

param
name The object name pattern identifying the managed objects to be retrieved. If null or no domain and key properties are specified, all the managed objects registered will be retrieved.
param
query The query expression to be applied for selecting managed objects. If null no query expression will be applied for selecting managed objects.
return
A set containing the ObjectNames for the managed objects selected. If no managed object satisfies the query, an empty list is returned.

        return server.queryNames(name, query);
    
public voidsetAttribute(javax.management.ObjectName name, javax.management.Attribute attribute)
Sets the value of a specific attribute of a named MBean. The MBean is identified by its object name.

param
name The name of the MBean within which the attribute is to be set.
param
attribute The identification of the attribute to be set and the value it is to be set to.
return
The value of the attribute that has been set.
exception
InstanceNotFoundException The MBean specified is not registered in the MBean server.
exception
AttributeNotFoundException The attribute specified is not accessible in the MBean.
exception
InvalidAttributeValueException The value specified for the attribute is not valid.
exception
MBeanException Wraps an exception thrown by the MBean's setter.
exception
ReflectionException Wraps a java.lang.Exception thrown when trying to invoke the setter.
exception
RuntimeOperationsException Wraps a java.lang.IllegalArgumentException: The object name in parameter is null or the attribute in parameter is null.

		server.setAttribute(name, attribute);
    
public javax.management.AttributeListsetAttributes(javax.management.ObjectName name, javax.management.AttributeList attributes)
Sets the values of several attributes of a named MBean. The MBean is identified by its object name.

param
name The object name of the MBean within which the attributes are to be set.
param
attributes A list of attributes: The identification of the attributes to be set and the values they are to be set to.
return
The list of attributes that were set, with their new values.
exception
InstanceNotFoundException The MBean specified is not registered in the MBean server.
exception
ReflectionException An exception occurred when trying to invoke the getAttributes method of a Dynamic MBean.
exception
RuntimeOperationsException Wraps a java.lang.IllegalArgumentException: The object name in parameter is null or attributes in parameter is null.

        return server.setAttributes(name, attributes);