Package com.sun.ejb.base.stats

Source Code of com.sun.ejb.base.stats.MonitoringRegistryMediator

/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License").  You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code.  If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license."  If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above.  However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/

package com.sun.ejb.base.stats;

import javax.management.j2ee.statistics.Stats;

import com.sun.enterprise.admin.monitor.registry.MonitoringRegistry;
import com.sun.enterprise.admin.monitor.registry.MonitoringLevelListener;
import com.sun.enterprise.admin.monitor.registry.MonitoringLevel;
import com.sun.enterprise.admin.monitor.registry.MonitoredObjectType;
import com.sun.enterprise.admin.monitor.registry.MonitoringRegistrationException;

import com.sun.enterprise.config.ConfigContext;
import com.sun.enterprise.config.ConfigBean;
import com.sun.enterprise.config.serverbeans.ServerBeansFactory;
import com.sun.enterprise.config.serverbeans.Config;
import com.sun.enterprise.server.ApplicationServer;
import com.sun.enterprise.server.ServerContext;
import com.sun.enterprise.config.ConfigException;
import com.sun.enterprise.config.serverbeans.TransactionService;

import com.sun.ejb.spi.stats.EJBCacheStatsProvider;
import com.sun.ejb.spi.stats.EJBMethodStatsProvider;
import com.sun.ejb.spi.stats.EJBPoolStatsProvider;
import com.sun.ejb.spi.stats.EJBStatsProvider;
import com.sun.ejb.spi.stats.StatelessSessionBeanStatsProvider;
import com.sun.ejb.spi.stats.StatefulSessionBeanStatsProvider;
import com.sun.ejb.spi.stats.EntityBeanStatsProvider;
import com.sun.ejb.spi.stats.MessageDrivenBeanStatsProvider;
import com.sun.ejb.spi.stats.EJBTimedObjectStatsProvider;
import com.sun.ejb.spi.stats.EJBMethodStatsManager;
import com.sun.ejb.spi.stats.MonitorableSFSBStoreManager;

import java.lang.reflect.Method;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.logging.*;

import com.sun.enterprise.log.Log;
import com.sun.logging.*;

/**
* A class that acts as an Mediator between admin.registry.* objects
*  and EJBContainers. There is one instance of MonitoringRegistryMediator
*  per EJBContainer. Containers interact only with this object
*  and are completely unaware of any the MonitoringRegistry classes
*
* @author Mahesh Kannan
*/

public class MonitoringRegistryMediator
    implements MonitoringLevelListener
{
    private static final int      ENTITY_CONTAINER_TYPE = 0;
    private static final int      STATELESS_CONTAINER_TYPE = 1;
    private static final int      STATEFUL_CONTAINER_TYPE = 2;
    private static final int      MESSAGE_CONTAINER_TYPE = 3;

    private static final Logger _logger =
        LogDomains.getLogger(LogDomains.EJB_LOGGER);

    private final String      appName;
    private final String      modName;
    private final String      ejbName;
    private final MonitoredObjectType ejbType;
   
    private int        containerType;
    private MonitoringLevel    currentMonitoringLevel;
    private MonitoringRegistry    registry;

    private EJBStatsProvider    ejbStatsProvider;
    private EJBCacheStatsProvider  ejbCacheStatsProvider;
    private EJBPoolStatsProvider  ejbPoolStatsProvider;
    private MonitorableSFSBStoreManager sfsbStoreStatsProvider;
    private EJBTimedObjectStatsProvider  ejbTimedObjectStatsProvider;

    private EJBStatsImpl    ejbStatsImpl;
    private EJBCacheStatsImpl    ejbCacheStatsImpl;
    private EJBPoolStatsImpl    ejbPoolStatsImpl;
    private EJBTimedObjectStatsImpl  ejbTimedObjectStatsImpl;
    private EJBMethodStatsManagerImpl  ejbMethodStatsManager;

    private StatefulSessionStoreMonitor  sfsbStoreMonitor;
    private boolean      isHAStore;

    private Level      TRACE_LEVEL = Level.INFO;
    private Object[]      logParams = null;

    public MonitoringRegistryMediator( MonitoredObjectType ejbType, String ejbName, String modName,
      String appName)
    {
  this.appName = appName;
  this.modName = modName;
    this.ejbType = ejbType;
  this.ejbName = ejbName;
   
  logParams = new Object[] {ejbName, modName, appName};

  this.registry = ApplicationServer.getServerContext().
      getMonitoringRegistry();

  this.ejbMethodStatsManager = new EJBMethodStatsManagerImpl(
    registry, ejbType, ejbName, modName, appName);
    }

    public void registerProvider(StatelessSessionBeanStatsProvider provider) {
  this.ejbStatsProvider = provider;
  this.containerType = STATELESS_CONTAINER_TYPE;
  registry.registerMonitoringLevelListener(this, MonitoredObjectType.STATELESS_BEAN);
  this.currentMonitoringLevel = getCurrentMonitoringLevel();
  if (! isMonitoringOff()) {
      registerContainerStats();
  }
    }

    public void registerProvider(StatefulSessionBeanStatsProvider provider) {
  this.ejbStatsProvider = provider;
  this.containerType = STATEFUL_CONTAINER_TYPE;
  registry.registerMonitoringLevelListener(this, MonitoredObjectType.STATEFUL_BEAN);
  this.currentMonitoringLevel = getCurrentMonitoringLevel();
  if (! isMonitoringOff()) {
      registerContainerStats();
  }
    }

    public void registerProvider(EntityBeanStatsProvider provider) {
  this.ejbStatsProvider = provider;
  this.containerType = ENTITY_CONTAINER_TYPE;
  registry.registerMonitoringLevelListener(this,
    MonitoredObjectType.ENTITY_BEAN);
  this.currentMonitoringLevel = getCurrentMonitoringLevel();
  if (! isMonitoringOff()) {
      registerContainerStats();
  }
    }

    public void registerProvider(MessageDrivenBeanStatsProvider provider) {
  this.ejbStatsProvider = provider;
  this.containerType = MESSAGE_CONTAINER_TYPE;
  registry.registerMonitoringLevelListener(this,
    MonitoredObjectType.MESSAGE_DRIVEN_BEAN);
  this.currentMonitoringLevel = getCurrentMonitoringLevel();
  if (! isMonitoringOff()) {
      registerContainerStats();
  }
    }

    public void registerProvider(EJBCacheStatsProvider provider) {
  this.ejbCacheStatsProvider = provider;
  if (! isMonitoringOff()) {
      registerCacheStats();
  }
    }

    public void registerProvider(EJBPoolStatsProvider provider) {
  this.ejbPoolStatsProvider = provider;
  if (! isMonitoringOff()) {
      registerPoolStats();
  }
    }

    public StatefulSessionStoreMonitor registerProvider(
      MonitorableSFSBStoreManager provider, boolean isHAStore)
    {
  this.sfsbStoreStatsProvider = provider;
  this.isHAStore = isHAStore;
  if (isHAStore) {
      this.sfsbStoreMonitor = new HAStatefulSessionStoreMonitor();
  } else {
      this.sfsbStoreMonitor = new StatefulSessionStoreMonitor();
  }
  if (! isMonitoringOff()) {
      registerSFSBStoreStats();
  }

  return sfsbStoreMonitor;
    }

    public EJBMethodStatsManager getEJBMethodStatsManager() {
  return this.ejbMethodStatsManager;
    }

    public void registerEJBMethods(Method[] methods, boolean prefixWithClassName) {
        this.ejbMethodStatsManager.registerMethods(methods, prefixWithClassName);
        if (isMonitoringHigh()) {
            this.ejbMethodStatsManager.setMethodMonitorOn(true);
        }
    }
   
    public void registerProvider(EJBTimedObjectStatsProvider provider) {
  this.ejbTimedObjectStatsProvider = provider;
  if (! isMonitoringOff()) {
      registerTimedObjectStats();
  }
    }

    //Methods for MonitoringLevelListener interface
    public void setLevel(MonitoringLevel level) {}

    public void changeLevel(MonitoringLevel from, MonitoringLevel to,
      Stats type)
    {
  //No op. Deprecated
    }
 
        private boolean
    isEJBType( final MonitoredObjectType type )
    {
        return
            type == MonitoredObjectType.STATELESS_BEAN ||
            type == MonitoredObjectType.STATEFUL_BEAN ||
            type == MonitoredObjectType.ENTITY_BEAN ||
            type == MonitoredObjectType.MESSAGE_DRIVEN_BEAN;
    }
   
    public void changeLevel(MonitoringLevel fromLevel,
      MonitoringLevel toLevel, MonitoredObjectType type)
    {
  if ( isEJBType(type) ) {
      synchronized (this) {
    if (_logger.isLoggable(Level.FINE)) {
        _logger.log(Level.FINE, "[MonitoringMediator] Level "
      + "changed from: "
      + monitoringLevelAsString(currentMonitoringLevel)
      + " to: "
      + monitoringLevelAsString(toLevel));
    }
     
      this.currentMonitoringLevel = toLevel;

      if (toLevel == MonitoringLevel.OFF) {
    deregisterPoolStats();
    deregisterCacheStats();
    ejbMethodStatsManager.setMethodMonitorOn(false);
    deregisterSFSBStoreStats();
    deregisterContainerStats();
    deregisterTimedObjectStats();
      } else {
    registerContainerStats();
    registerPoolStats();
    registerCacheStats();
    registerSFSBStoreStats();
    ejbMethodStatsManager.setMethodMonitorOn(
        toLevel == MonitoringLevel.HIGH);
    registerTimedObjectStats();
      }
        }
  }
    }

    public void undeploy() {
  try {
      deregisterPoolStats();
      deregisterCacheStats();
      ejbMethodStatsManager.undeploy();
      deregisterContainerStats();
      deregisterSFSBStoreStats();
      deregisterTimedObjectStats();
  } finally {
      ejbStatsProvider = null;
      ejbCacheStatsProvider = null;
      ejbPoolStatsProvider = null;
      ejbMethodStatsManager = null;
      sfsbStoreStatsProvider = null;
      sfsbStoreMonitor = null;
      ejbTimedObjectStatsProvider = null;

      registry.unregisterMonitoringLevelListener(this);
  }
    }

    /************** Internal methods ********************/

    private void registerContainerStats() {
  if ((ejbStatsProvider == null) || (this.ejbStatsImpl != null)) {
      return;
  }

  try {
      switch (containerType) {
    case STATELESS_CONTAINER_TYPE:
        StatelessSessionBeanStatsImpl slsbImpl =
      new StatelessSessionBeanStatsImpl(
      (StatelessSessionBeanStatsProvider) ejbStatsProvider);
        registry.registerStatelessSessionBeanStats(slsbImpl,
      ejbName, modName, appName, null);
        this.ejbStatsImpl = slsbImpl;
        break;
    case STATEFUL_CONTAINER_TYPE:
        StatefulSessionBeanStatsImpl sfsbImpl =
      new StatefulSessionBeanStatsImpl(
      (StatefulSessionBeanStatsProvider) ejbStatsProvider);
        registry.registerStatefulSessionBeanStats(sfsbImpl,
          ejbName, modName, appName, null);
        this.ejbStatsImpl = sfsbImpl;
        break;
    case ENTITY_CONTAINER_TYPE:
        EntityBeanStatsImpl entityImpl =
      new EntityBeanStatsImpl(
      (EntityBeanStatsProvider) ejbStatsProvider);
        registry.registerEntityBeanStats(entityImpl,
          ejbName, modName, appName, null);
        this.ejbStatsImpl = entityImpl;
        break;
    case MESSAGE_CONTAINER_TYPE:
        MessageDrivenBeanStatsImpl mdbImpl =
      new MessageDrivenBeanStatsImpl(
      (MessageDrivenBeanStatsProvider) ejbStatsProvider);
        registry.registerMessageDrivenBeanStats(mdbImpl,
          ejbName, modName, appName, null);
        this.ejbStatsImpl = mdbImpl;
        break;
      }
      if (_logger.isLoggable(Level.FINE)) {
    _logger.log(Level.FINE, "[MonitoringMediator] registered "
      + " container stats for " + appName
      + "; " + modName + "; " + ejbName);
      }
  } catch (MonitoringRegistrationException monRegEx) {
      ejbStatsImpl = null;
      _logger.log(Level.WARNING,
    "base.stats.mediator.ejb.register.monreg.error", logParams);
      _logger.log(Level.FINE, "", monRegEx);
  } catch (Exception ex) {
      ejbStatsImpl = null;
      _logger.log(Level.WARNING,
    "base.stats.mediator.ejb.register.error", logParams);
      _logger.log(Level.FINE, "", ex);
  }
    }

    private void deregisterContainerStats() {
  try {
      if (ejbStatsImpl != null) {
    switch (containerType) {
        case STATELESS_CONTAINER_TYPE:
      registry.unregisterStatelessSessionBeanStats(
        ejbName, modName, appName);
      break;
        case STATEFUL_CONTAINER_TYPE:
      registry.unregisterStatefulSessionBeanStats(
        ejbName, modName, appName);
      break;
        case ENTITY_CONTAINER_TYPE:
      registry.unregisterEntityBeanStats(
        ejbName, modName, appName);
      break;
        case MESSAGE_CONTAINER_TYPE:
      registry.unregisterMessageDrivenBeanStats(
        ejbName, modName, appName);
      break;
    }
    if (_logger.isLoggable(Level.FINE)) {
        _logger.log(Level.FINE, "[MonitoringMediator] unregistered "
          + " container stats for " + appName
          + "; " + modName + "; " + ejbName);
    }
      }
  } catch (MonitoringRegistrationException monRegEx) {
      _logger.log(Level.WARNING,
    "base.stats.mediator.ejb.unregister.monreg.error", logParams);
      _logger.log(Level.FINE, "", monRegEx);
  } catch (Exception ex) {
      _logger.log(Level.WARNING,
    "base.stats.mediator.ejb.unregister.error", logParams);
      _logger.log(Level.FINE, "", ex);
  } finally {
      ejbStatsImpl = null;
  }
    }

    private void registerPoolStats() {
  if ((ejbPoolStatsProvider != null) && (ejbPoolStatsImpl == null)) {
      try {
    ejbPoolStatsImpl = new EJBPoolStatsImpl(ejbPoolStatsProvider);
    registry.registerEJBPoolStats(ejbPoolStatsImpl,
        ejbType, ejbName, modName, appName, null);
    if (_logger.isLoggable(Level.FINE)) {
        _logger.log(Level.FINE, "[MonitoringMediator] registered "
          + " pool stats for " + appName
          + "; " + modName + "; " + ejbName);
    }
      } catch (MonitoringRegistrationException monRegEx) {
    ejbPoolStatsImpl = null;
    _logger.log(Level.WARNING,
        "base.stats.mediator.pool.register.monreg.error", logParams);
    _logger.log(Level.FINE, "", monRegEx);
      } catch (Exception ex) {
    ejbPoolStatsImpl = null;
    _logger.log(Level.WARNING,
        "base.stats.mediator.pool.register.error", logParams);
    _logger.log(Level.FINE, "", ex);
      }
  }
    }

    private void registerCacheStats() {
  if ((ejbCacheStatsProvider != null) && (ejbCacheStatsImpl == null)) {
      try {
    ejbCacheStatsImpl = new EJBCacheStatsImpl(ejbCacheStatsProvider);
    registry.registerEJBCacheStats(ejbCacheStatsImpl,
        ejbType, ejbName, modName, appName, null);
    if (_logger.isLoggable(Level.FINE)) {
        _logger.log(Level.FINE, "[MonitoringMediator] registered "
          + " cache stats for " + appName
          + "; " + modName + "; " + ejbName);
    }
      } catch (MonitoringRegistrationException monRegEx) {
    ejbCacheStatsImpl = null;
    _logger.log(Level.WARNING,
        "base.stats.mediator.cache.register.monreg.error", logParams);
    _logger.log(Level.FINE, "", monRegEx);
      } catch (Exception ex) {
    ejbCacheStatsImpl = null;
    _logger.log(Level.WARNING,
        "base.stats.mediator.cache.register.error", logParams);
    _logger.log(Level.FINE, "", ex);
      }
  }
    }

    private void registerSFSBStoreStats() {
  if (sfsbStoreMonitor != null) {
      StatefulSessionStoreStatsImpl statsImpl = null;
      statsImpl = (isHAStore)
    ? new HAStatefulSessionStoreStatsImpl(sfsbStoreStatsProvider)
    : new StatefulSessionStoreStatsImpl(sfsbStoreStatsProvider);
      sfsbStoreMonitor.setDelegate(statsImpl);
      //FIXME: registry.registerStatefulSessionStoreStats(statsImpl);
      sfsbStoreStatsProvider.monitoringLevelChanged(true);
  }
    }

    private void registerTimedObjectStats() {
  if (ejbTimedObjectStatsProvider != null) {
            ejbTimedObjectStatsProvider.monitoringLevelChanged(true);
            if (ejbTimedObjectStatsImpl == null) {
          try {
        ejbTimedObjectStatsImpl =
                        new EJBTimedObjectStatsImpl(
                            ejbTimedObjectStatsProvider );
        registry.registerTimerStats(ejbTimedObjectStatsImpl,
            ejbType, ejbName, modName, appName, null);
        if (_logger.isLoggable(Level.FINE)) {
            _logger.log(Level.FINE, "[MonitoringMediator] registered "
              + " timed Object stats for " + appName
              + "; " + modName + "; " + ejbName);
        }
          } catch (MonitoringRegistrationException monRegEx) {
        ejbTimedObjectStatsImpl = null;
        _logger.log(Level.WARNING,
            "base.stats.mediator.timedObject.register.monreg.error", logParams);
        _logger.log(Level.FINE, "", monRegEx);
          } catch (Exception ex) {
        ejbTimedObjectStatsImpl = null;
        _logger.log(Level.WARNING,
            "base.stats.mediator.timedObject.register.error", logParams);
        _logger.log(Level.FINE, "", ex);
          }
      }
        }
    }

    private void deregisterPoolStats() {
  if ((ejbPoolStatsProvider != null) && (ejbPoolStatsImpl != null)) {
      try {
    registry.unregisterEJBPoolStats( ejbType, ejbName, modName, appName);
    if (_logger.isLoggable(Level.FINE)) {
        _logger.log(Level.FINE, "[MonitoringMediator] unregistered "
          + " pool stats for " + appName
          + "; " + modName + "; " + ejbName);
    }
      } catch (MonitoringRegistrationException monRegEx) {
    _logger.log(Level.WARNING,
        "base.stats.mediator.pool.unregister.monreg.error", logParams);
    _logger.log(Level.FINE, "", monRegEx);
      } catch (Exception ex) {
    _logger.log(Level.WARNING,
        "base.stats.mediator.pool.unregister.error", logParams);
    _logger.log(Level.FINE, "", ex);
      } finally {
    ejbPoolStatsImpl = null;
      }
  }
    }

    private void deregisterCacheStats() {
  if ((ejbCacheStatsProvider != null) && (ejbCacheStatsImpl != null)) {
      try {
    registry.unregisterEJBCacheStats( ejbType, ejbName, modName, appName);
    if (_logger.isLoggable(Level.FINE)) {
        _logger.log(Level.FINE, "[MonitoringMediator] unregistered "
          + " cache stats for " + appName
          + "; " + modName + "; " + ejbName);
    }
      } catch (MonitoringRegistrationException monRegEx) {
    _logger.log(Level.WARNING,
        "base.stats.mediator.cache.unregister.monreg.error", logParams);
    _logger.log(Level.FINE, "", monRegEx);
      } catch (Exception ex) {
    _logger.log(Level.WARNING,
        "base.stats.mediator.cache.unregister.error", logParams);
    _logger.log(Level.FINE, "", ex);
      } finally {
    ejbCacheStatsImpl = null;
      }
  }
    }

    private void deregisterSFSBStoreStats() {
  //FIXME: registry.unregisterStatefulSessionStoreStats(ejbName, modName, appName);
  if (sfsbStoreMonitor != null) {
      sfsbStoreStatsProvider.monitoringLevelChanged(false);
      sfsbStoreMonitor.setDelegate(null);
  }
    }

    private void deregisterTimedObjectStats() {
  if ((ejbTimedObjectStatsProvider != null) && (ejbTimedObjectStatsImpl != null)) {
      try {
                ejbTimedObjectStatsProvider.monitoringLevelChanged(false);
    registry.unregisterTimerStats( ejbType, ejbName, modName, appName);
    if (_logger.isLoggable(Level.FINE)) {
        _logger.log(Level.FINE, "[MonitoringMediator] unregistered "
          + " timed Object stats for " + appName
          + "; " + modName + "; " + ejbName);
    }
      } catch (MonitoringRegistrationException monRegEx) {
    _logger.log(Level.WARNING,
        "base.stats.mediator.timedObject.unregister.monreg.error", logParams);
    _logger.log(Level.FINE, "", monRegEx);
      } catch (Exception ex) {
    _logger.log(Level.WARNING,
        "base.stats.mediator.timedObject.unregister.error", logParams);
    _logger.log(Level.FINE, "", ex);
      } finally {
    ejbTimedObjectStatsImpl = null;
      }
  }
    }

    public void logMonitoredComponentsData(boolean logMethodData) {
  StringBuffer sbuf = new StringBuffer();
  sbuf.append("[BEGIN Container-Stats: ").append(ejbName).append("]");
  ejbStatsProvider.appendStats(sbuf);
  if (ejbCacheStatsProvider != null) {
      ejbCacheStatsProvider.appendStats(sbuf);
  }
  if (ejbPoolStatsProvider != null) {
      ejbPoolStatsProvider.appendStats(sbuf);
  }
  if (logMethodData) {
      ejbMethodStatsManager.appendStats(sbuf);
  }
  if (ejbTimedObjectStatsProvider != null) {
      ejbTimedObjectStatsProvider.appendStats(sbuf);
  }
  if (sfsbStoreMonitor != null) {
      sbuf.append((isHAStore ? "[HASFSBStore ": "[SFSBStore "));
      sfsbStoreMonitor.appendStats(sbuf);
      sfsbStoreStatsProvider.appendStats(sbuf);
      sbuf.append("]");
  }
  sbuf.append("[END   Container-Stats: ").append(ejbName).append("]");
  _logger.log(Level.INFO, sbuf.toString());
    }

    private final synchronized MonitoringLevel getCurrentMonitoringLevel() {
  MonitoringLevel level = MonitoringLevel.OFF;
  try {
      Config cfg = ServerBeansFactory.getConfigBean(ApplicationServer.
    getServerContext().getConfigContext());
      String levelStr = cfg.getMonitoringService().
    getModuleMonitoringLevels().getEjbContainer();
      level = MonitoringLevel.instance(levelStr);
  } catch (ConfigException configEx) {
      _logger.log(Level.WARNING, "ejb_base_stats_mediator_configex",
        configEx);
  }
  if (_logger.isLoggable(Level.FINE)) {
      _logger.log(Level.FINE, "[MonitoringMediator] currentLevel: "
        + monitoringLevelAsString(level));
  }
  return level;
    }

    private final synchronized boolean isMonitoringOff() {
  return (this.currentMonitoringLevel == MonitoringLevel.OFF);
    }

    private final synchronized boolean isMonitoringLow() {
  return (this.currentMonitoringLevel == MonitoringLevel.LOW);
    }

    private final synchronized boolean isMonitoringHigh() {
  return (this.currentMonitoringLevel == MonitoringLevel.HIGH);
    }

    private static final String monitoringLevelAsString(MonitoringLevel level) {
  if (level == MonitoringLevel.OFF) {
      return "OFF";
  } else if (level == MonitoringLevel.HIGH) {
      return "HIGH";
  } else {
      return "LOW";
  }
    }

}
TOP

Related Classes of com.sun.ejb.base.stats.MonitoringRegistryMediator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.