EJBMethodStatsManagerImplpublic final class EJBMethodStatsManagerImpl extends Object implements com.sun.ejb.spi.stats.EJBMethodStatsManagerA class that manages all the monitored EJB methods |
Fields Summary |
---|
private static final Logger | _logger | private com.sun.enterprise.admin.monitor.registry.MonitoringRegistry | registry | private final String | appName | private final String | modName | private final String | ejbName | private final com.sun.enterprise.admin.monitor.registry.MonitoredObjectType | ejbType | private Method[] | methods | private boolean | methodMonitorOn | private MethodMonitor[] | methodMonitors | private HashMap | methodMonitorMap | private Object | lock | private Object[] | logParams | private boolean | prefixWithClassName |
Methods Summary |
---|
void | appendStats(java.lang.StringBuffer sbuf)
if (methodMonitors != null) {
int size = methods.length;
for (int i=0; i<size; i++) {
MethodMonitor monitor =
(MethodMonitor) methodMonitors[i];
monitor.appendStats(sbuf);
}
}
| private void | deregisterStats()
if (methodMonitors == null) {
return;
}
int size = methodMonitors.length;
for (int i=0; i<size; i++) {
try {
registry.unregisterEJBMethodStats(
methodMonitors[i].getMethodName(),
ejbType, ejbName, modName, appName);
if (_logger.isLoggable(Level.FINE)) {
_logger.log(Level.FINE, "Unregistered method: "
+ methodMonitors[i].getMethodName()
+ "; for " + appName + "; " + modName
+ "; " + ejbName);
}
} catch (MonitoringRegistrationException monRegEx) {
Object[] params = new Object[] {ejbName, modName,
appName, methodMonitors[i].getMethodName()};
_logger.log(Level.FINE,
"base.stats.method.unregister.monreg.error", params);
_logger.log(Level.FINE, "", monRegEx);
} catch (Exception ex) {
Object[] params = new Object[] {ejbName, modName,
appName, methodMonitors[i].getMethodName()};
_logger.log(Level.WARNING,
"base.stats.method.unregister.error", params);
_logger.log(Level.FINE, "", ex);
}
}
methodMonitors = null;
| public MethodMonitor[] | getMethodMonitors()
return this.methodMonitors;
| public final boolean | isMethodMonitorOn()
return methodMonitorOn;
| public final void | postInvoke(java.lang.reflect.Method method, java.lang.Throwable th)
if (methodMonitorOn) {
MethodMonitor monitor = null;
synchronized (lock) {
if (methodMonitorOn) {
monitor = (MethodMonitor) methodMonitorMap.get(method);
}
}
if (monitor != null) {
monitor.postInvoke(th);
}
}
| public final void | preInvoke(java.lang.reflect.Method method)
if (methodMonitorOn) {
MethodMonitor monitor = null;
synchronized (lock) {
if (methodMonitorOn) {
monitor = (MethodMonitor) methodMonitorMap.get(method);
}
}
if (monitor != null) {
monitor.preInvoke();
}
}
| void | registerMethods(java.lang.reflect.Method[] methods, boolean prefixWithClassName)
this.prefixWithClassName = prefixWithClassName;
this.methods = methods;
| void | setMethodMonitorOn(boolean monitorOn)
if (methods == null) {
_logger.log(Level.WARNING, "base.stats.method.nomethods", logParams);
return;
}
int size = methods.length;
if (monitorOn == true) {
this.methodMonitors = new MethodMonitor[size];
HashMap map = new HashMap();
for (int i=0; i<size; i++) {
methodMonitors[i] = new MethodMonitor(methods[i], prefixWithClassName);
map.put(methods[i], methodMonitors[i]);
EJBMethodStatsImpl impl =
new EJBMethodStatsImpl(methodMonitors[i]);
try {
if (_logger.isLoggable(Level.FINE)) {
_logger.log(Level.FINE, "Registering method: "
+ methodMonitors[i].getMethodName()
+ "; for " + appName + "; " + modName
+ "; " + ejbName);
}
registry.registerEJBMethodStats(impl,
methodMonitors[i].getMethodName(),
ejbType, ejbName, modName, appName, null);
if (_logger.isLoggable(Level.FINE)) {
_logger.log(Level.FINE, "Registered method: "
+ methodMonitors[i].getMethodName()
+ "; for " + appName + "; " + modName
+ "; " + ejbName);
}
} catch (MonitoringRegistrationException monRegEx) {
Object[] params = new Object[] {ejbName, modName,
appName, methodMonitors[i].getMethodName()};
_logger.log(Level.WARNING,
"base.stats.method.register.monreg.error", params);
_logger.log(Level.FINE, "", monRegEx);
} catch (Exception ex) {
Object[] params = new Object[] {ejbName, modName,
appName, methodMonitors[i].getMethodName()};
_logger.log(Level.WARNING,
"base.stats.method.register.error", params);
_logger.log(Level.FINE, "", ex);
}
}
this.methodMonitorMap = map;
synchronized (lock) {
this.methodMonitorOn = true;
}
} else {
synchronized (lock) {
this.methodMonitorOn = false;
}
deregisterStats();
this.methodMonitorMap = null;
this.methodMonitors = null;
}
| public void | undeploy()
synchronized (lock) {
methodMonitorOn = false;
}
deregisterStats();
methods = null;
methodMonitors = null;
methodMonitorMap = null;
registry = null;
|
|