use of javax.management.monitor.GaugeMonitor in project jdk8u_jdk by JetBrains.
the class DerivedGaugeMonitorTest method test.
public static void test(String attr) throws Exception {
System.err.println("Testing " + attr);
final MBeanServer server = MBeanServerFactory.createMBeanServer();
final ObjectName mbean = new ObjectName("ugly:type=cr.p");
final My my = new My();
final GaugeMonitor mon2 = new GaugeMonitor();
final ObjectName mon2n = new ObjectName("mon1:type=GaugeMonitor");
final CounterMonitor mon1 = new CounterMonitor();
final ObjectName mon1n = new ObjectName("mon2:type=CounterMonitor");
server.registerMBean(my, mbean);
server.registerMBean(mon1, mon1n);
server.registerMBean(mon2, mon2n);
mon1.addObservedObject(mbean);
// 60 sec...
mon1.setGranularityPeriod(60000);
mon1.setObservedAttribute(attr);
mon1.setDifferenceMode(true);
check(attr, server, mon1n, mbean);
mon2.addObservedObject(mbean);
// 60 sec...
mon2.setGranularityPeriod(60000);
mon2.setObservedAttribute(attr);
mon2.setDifferenceMode(true);
check(attr, server, mon2n, mbean);
final long approxStart = System.currentTimeMillis();
mon1.start();
mon2.start();
try {
check(attr, server, mon1n, mbean, approxStart);
check(attr, server, mon2n, mbean, approxStart);
check(attr, server, mon1n, mbean, approxStart);
check(attr, server, mon2n, mbean, approxStart);
mon1.setGranularityPeriod(5);
mon2.setGranularityPeriod(5);
my.cdl.await(1000, TimeUnit.MILLISECONDS);
if (my.cdl.getCount() > 0)
throw new Exception(attr + ": Count down not reached!");
// just check that we don't get an exception now...
System.err.println(attr + ": [" + mon1n + "] DerivedGauge is now " + server.getAttribute(mon1n, "DerivedGauge"));
System.err.println(attr + ": [" + mon2n + "] DerivedGauge is now " + server.getAttribute(mon2n, "DerivedGauge"));
} finally {
try {
mon1.stop();
} catch (Exception x) {
}
try {
mon2.stop();
} catch (Exception x) {
}
}
}
use of javax.management.monitor.GaugeMonitor in project jdk8u_jdk by JetBrains.
the class RuntimeExceptionTest method gaugeMonitorNotification.
/**
* Update the gauge and check for notifications
*/
public int gaugeMonitorNotification() throws Exception {
GaugeMonitor gaugeMonitor = new GaugeMonitor();
try {
// Create a new GaugeMonitor MBean and add it to the MBeanServer.
//
echo(">>> CREATE a new GaugeMonitor MBean");
ObjectName gaugeMonitorName = new ObjectName(domain + ":type=" + GaugeMonitor.class.getName());
server.registerMBean(gaugeMonitor, gaugeMonitorName);
echo(">>> ADD a listener to the GaugeMonitor");
gaugeMonitor.addNotificationListener(this, null, null);
//
// MANAGEMENT OF A STANDARD MBEAN
//
echo(">>> SET the attributes of the GaugeMonitor:");
gaugeMonitor.addObservedObject(obsObjName);
echo("\tATTRIBUTE \"ObservedObject\" = " + obsObjName);
gaugeMonitor.setObservedAttribute("IntegerAttribute");
echo("\tATTRIBUTE \"ObservedAttribute\" = IntegerAttribute");
gaugeMonitor.setNotifyLow(false);
gaugeMonitor.setNotifyHigh(false);
echo("\tATTRIBUTE \"Notify Low Flag\" = false");
echo("\tATTRIBUTE \"Notify High Flag\" = false");
Integer highThreshold = 3, lowThreshold = 2;
gaugeMonitor.setThresholds(highThreshold, lowThreshold);
echo("\tATTRIBUTE \"Low Threshold\" = " + lowThreshold);
echo("\tATTRIBUTE \"High Threshold\" = " + highThreshold);
int granularityperiod = 500;
gaugeMonitor.setGranularityPeriod(granularityperiod);
echo("\tATTRIBUTE \"GranularityPeriod\" = " + granularityperiod);
echo(">>> START the GaugeMonitor");
gaugeMonitor.start();
// Check if notification was received
//
doWait();
if (messageReceived) {
echo("\tOK: GaugeMonitor got RUNTIME_ERROR notification!");
} else {
echo("\tKO: GaugeMonitor did not get " + "RUNTIME_ERROR notification!");
return 1;
}
} finally {
messageReceived = false;
if (gaugeMonitor != null)
gaugeMonitor.stop();
}
return 0;
}
use of javax.management.monitor.GaugeMonitor in project jdk8u_jdk by JetBrains.
the class StartStopTest method runTest.
/**
* Run test
*/
public int runTest(int monitorType) throws Exception {
int nTasks = maxPoolSize + 2;
ObjectName[] mbeanNames = new ObjectName[nTasks];
ObservedObject[] monitored = new ObservedObject[nTasks];
ObjectName[] monitorNames = new ObjectName[nTasks];
Monitor[] monitor = new Monitor[nTasks];
String[] attributes = { "Integer", "Double", "String" };
try {
echo(">>> CREATE MBeanServer");
MBeanServer server = MBeanServerFactory.newMBeanServer();
String domain = server.getDefaultDomain();
for (int i = 0; i < nTasks; i++) {
mbeanNames[i] = new ObjectName(":type=ObservedObject,instance=" + (i + 1));
monitored[i] = new ObservedObject();
echo(">>> CREATE ObservedObject = " + mbeanNames[i].toString());
server.registerMBean(monitored[i], mbeanNames[i]);
switch(monitorType) {
case 1:
monitorNames[i] = new ObjectName(":type=CounterMonitor," + "instance=" + (i + 1));
monitor[i] = new CounterMonitor();
break;
case 2:
monitorNames[i] = new ObjectName(":type=GaugeMonitor," + "instance=" + (i + 1));
monitor[i] = new GaugeMonitor();
break;
case 3:
monitorNames[i] = new ObjectName(":type=StringMonitor," + "instance=" + (i + 1));
monitor[i] = new StringMonitor();
break;
default:
echo("Unsupported monitor type");
return 1;
}
echo(">>> CREATE Monitor = " + monitorNames[i].toString());
server.registerMBean(monitor[i], monitorNames[i]);
monitor[i].addObservedObject(mbeanNames[i]);
monitor[i].setObservedAttribute(attributes[monitorType - 1]);
monitor[i].setGranularityPeriod(50);
}
for (int j = 0; j < 2; j++) {
echo(">>> Start MONITORS");
for (int i = 0; i < nTasks; i++) monitor[i].start();
echo(">>> MONITORS started");
doSleep(500);
echo(">>> Check FLAGS true");
for (int i = 0; i < nTasks; i++) if (!monitored[i].called) {
echo("KO: At least one attribute was not called");
return 1;
}
echo(">>> FLAGS checked true");
echo(">>> Stop MONITORS");
for (int i = 0; i < nTasks; i++) monitor[i].stop();
echo(">>> MONITORS stopped");
doSleep(500);
echo(">>> Set FLAGS to false");
for (int i = 0; i < nTasks; i++) monitored[i].called = false;
echo(">>> FLAGS set to false");
echo(">>> Check FLAGS remain false");
for (int i = 0; i < nTasks; i++) if (monitored[i].called) {
echo("KO: At least one attribute " + "continued to get called");
return 1;
}
echo(">>> FLAGS checked false");
}
} finally {
for (int i = 0; i < nTasks; i++) if (monitor[i] != null)
monitor[i].stop();
}
return 0;
}
Aggregations