ConnectorWorkMonitoringLevelListenerpublic final class ConnectorWorkMonitoringLevelListener extends Object implements com.sun.enterprise.admin.monitor.registry.MonitoringLevelListenerProvides an implementation of the MonitoringLevelListener interface to
receive callbacks from admin regarding change in the monitoring level.
Though there are 3 monitoring levels defined by JSR77, we support
only 2 levels - OFF and ON (HIGH/LOW). So essentially, HIGH and LOW
for us is only ON |
Fields Summary |
---|
private static final Logger | _logger | private com.sun.enterprise.admin.monitor.registry.MonitoringRegistry | registry_ |
Methods Summary |
---|
public void | changeLevel(com.sun.enterprise.admin.monitor.registry.MonitoringLevel from, com.sun.enterprise.admin.monitor.registry.MonitoringLevel to, javax.management.j2ee.statistics.Stats handback)
| public void | changeLevel(com.sun.enterprise.admin.monitor.registry.MonitoringLevel from, com.sun.enterprise.admin.monitor.registry.MonitoringLevel to, com.sun.enterprise.admin.monitor.registry.MonitoredObjectType type)
if ( from == to ) {
//Its a no-op, so return
return;
}
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
ServerContext ctxt = ApplicationServer.getServerContext();
if (ctxt != null ) {
registry_ = ctxt.getMonitoringRegistry();
}
return null;
}
});
if (from == MonitoringLevel.OFF ) {
if (to == MonitoringLevel.HIGH || to == MonitoringLevel.LOW ) {
switchOnMonitoring();
}
}
if (from == MonitoringLevel.HIGH || from == MonitoringLevel.LOW ) {
if ( to == MonitoringLevel.OFF ) {
switchOffMonitoring();
}
}
| public void | setLevel(com.sun.enterprise.admin.monitor.registry.MonitoringLevel level)
| private void | setWorkManagementMonitoring(com.sun.enterprise.connectors.ActiveInboundResourceAdapter adapter, boolean isEnabled)
MonitorableWorkManager mwm = (MonitorableWorkManager)adapter.
getBootStrapContext().getWorkManager();
mwm.setMonitoringEnabled(isEnabled);
| private void | switchOffMonitoring()Switch OFF Monitoring for Connector work management
if ( _logger.isLoggable(Level.FINE) ) {
_logger.fine("Switching level form ON to OFF");
}
//deregister
AccessController.doPrivileged( new PrivilegedAction() {
public Object run() {
ActiveResourceAdapter[] allRAs = ConnectorRegistry.
getInstance().getAllActiveResourceAdapters();
if ( allRAs == null ) {
return null;
}
ActiveInboundResourceAdapter inboundRA = null;
for (int i = 0; i < allRAs.length; i++ ) {
if ( allRAs[i] != null
&& allRAs[i] instanceof ActiveInboundResourceAdapter) {
try{
inboundRA = (ActiveInboundResourceAdapter)allRAs[i];
String moduleName = inboundRA.getModuleName();
//@todo :: after MBeans are modified
//Dont register system RARs as of now until MBean changes are complete.
if (ResourcesUtil.createInstance().belongToSystemRar(moduleName)) {
if (!ConnectorAdminServiceUtils.isJMSRA(moduleName)) {
continue;
}
}
registry_.unregisterConnectorWorkMgmtStats(
ConnectorAdminServiceUtils.getApplicationName(moduleName),
ConnectorAdminServiceUtils.getConnectorModuleName(moduleName),
ConnectorAdminServiceUtils.isJMSRA(moduleName));
//disable work mgmt monitoring
setWorkManagementMonitoring(inboundRA, false);
} catch( Exception mre ) {
_logger.log( Level.INFO, "poolmon.cannot_unreg");
}
}
}
return null;
}
});
| private void | switchOnMonitoring()Switch on Monitoring for Connector work management
if ( _logger.isLoggable(Level.FINE) ) {
_logger.fine("Switching level form OFF to ON");
}
AccessController.doPrivileged( new PrivilegedAction() {
public Object run() {
ActiveResourceAdapter[] allRAs = ConnectorRegistry.
getInstance().getAllActiveResourceAdapters();
if ( allRAs == null ) {
return null;
}
ActiveInboundResourceAdapter inboundRA = null;
for (int i = 0; i < allRAs.length; i++ ) {
if ( allRAs[i] != null
&& allRAs[i] instanceof ActiveInboundResourceAdapter) {
try{
inboundRA = (ActiveInboundResourceAdapter)allRAs[i];
ConnectorWorkMgmtStatsImpl workstatsimpl =
new ConnectorWorkMgmtStatsImpl(inboundRA);
String moduleName = inboundRA.getModuleName();
//@todo :: after MBeans are modified
//Dont register system RARs as of now until MBean changes are complete.
if (ResourcesUtil.createInstance().belongToSystemRar(moduleName)) {
if (!ConnectorAdminServiceUtils.isJMSRA(moduleName)) {
continue;
}
}
//enable work mgmt monitoring
setWorkManagementMonitoring(inboundRA, true);
registry_.registerConnectorWorkMgmtStats(
workstatsimpl,
ConnectorAdminServiceUtils.getApplicationName(moduleName),
ConnectorAdminServiceUtils.getConnectorModuleName(moduleName),
ConnectorAdminServiceUtils.isJMSRA(moduleName),
null);
} catch (Exception mre) {
_logger.log( Level.WARNING, "poolmon.cannot_reg",
mre.getMessage() );
}
}
}
return null;
}
});
|
|