javax.management.monitor.GaugeMonitor Java Examples
The following examples show how to use
javax.management.monitor.GaugeMonitor.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ThreadPoolTest.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
/** * Run test */ public int runTest(int monitorType) throws Exception { 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); monitor[i].start(); } if (!waiter.waiting(MAX_WAITING_TIME)) { echo("Error, not all "+nTasks+" monitor tasks are called after " +MAX_WAITING_TIME); return 1; } } finally { for (int i = 0; i < nTasks; i++) if (monitor[i] != null) monitor[i].stop(); } echo("All "+nTasks+" monitors are called."); return 0; }
Example #2
Source File: ThreadPoolAccTest.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
public static void main (String args[]) throws Exception { ObjectName[] mbeanNames = new ObjectName[6]; ObservedObject[] monitored = new ObservedObject[6]; ObjectName[] monitorNames = new ObjectName[6]; Monitor[] monitor = new Monitor[6]; String[] principals = { "role1", "role2" }; String[] attributes = { "Integer", "Double", "String" }; try { echo(">>> CREATE MBeanServer"); MBeanServer server = MBeanServerFactory.newMBeanServer(); for (int i = 0; i < 6; i++) { mbeanNames[i] = new ObjectName(":type=ObservedObject,instance=" + i); monitored[i] = new ObservedObject(); echo(">>> CREATE ObservedObject = " + mbeanNames[i].toString()); server.registerMBean(monitored[i], mbeanNames[i]); switch (i) { case 0: case 3: monitorNames[i] = new ObjectName(":type=CounterMonitor,instance=" + i); monitor[i] = new CounterMonitor(); break; case 1: case 4: monitorNames[i] = new ObjectName(":type=GaugeMonitor,instance=" + i); monitor[i] = new GaugeMonitor(); break; case 2: case 5: monitorNames[i] = new ObjectName(":type=StringMonitor,instance=" + i); monitor[i] = new StringMonitor(); break; } echo(">>> CREATE Monitor = " + monitorNames[i].toString()); server.registerMBean(monitor[i], monitorNames[i]); monitor[i].addObservedObject(mbeanNames[i]); monitor[i].setObservedAttribute(attributes[i % 3]); monitor[i].setGranularityPeriod(500); final Monitor m = monitor[i]; Subject subject = new Subject(); echo(">>> RUN Principal = " + principals[i / 3]); subject.getPrincipals().add(new JMXPrincipal(principals[i / 3])); PrivilegedAction<Void> action = new PrivilegedAction<Void>() { public Void run() { m.start(); return null; } }; Subject.doAs(subject, action); } while(!testPrincipals(monitored, monitorNames, monitor, principals)); } finally { for (int i = 0; i < 6; i++) if (monitor[i] != null) monitor[i].stop(); } }
Example #3
Source File: ThreadPoolTest.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
/** * Run test */ public int runTest(int monitorType) throws Exception { 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); monitor[i].start(); } if (!waiter.waiting(MAX_WAITING_TIME)) { echo("Error, not all "+nTasks+" monitor tasks are called after " +MAX_WAITING_TIME); return 1; } } finally { for (int i = 0; i < nTasks; i++) if (monitor[i] != null) monitor[i].stop(); } echo("All "+nTasks+" monitors are called."); return 0; }
Example #4
Source File: RuntimeExceptionTest.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #5
Source File: StartStopTest.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #6
Source File: RuntimeExceptionTest.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #7
Source File: ThreadPoolTest.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
/** * Run test */ public int runTest(int monitorType) throws Exception { 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); monitor[i].start(); } if (!waiter.waiting(MAX_WAITING_TIME)) { echo("Error, not all "+nTasks+" monitor tasks are called after " +MAX_WAITING_TIME); return 1; } } finally { for (int i = 0; i < nTasks; i++) if (monitor[i] != null) monitor[i].stop(); } echo("All "+nTasks+" monitors are called."); return 0; }
Example #8
Source File: ReflectionExceptionTest.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #9
Source File: ThreadPoolAccTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
public static void main (String args[]) throws Exception { ObjectName[] mbeanNames = new ObjectName[6]; ObservedObject[] monitored = new ObservedObject[6]; ObjectName[] monitorNames = new ObjectName[6]; Monitor[] monitor = new Monitor[6]; String[] principals = { "role1", "role2" }; String[] attributes = { "Integer", "Double", "String" }; try { echo(">>> CREATE MBeanServer"); MBeanServer server = MBeanServerFactory.newMBeanServer(); for (int i = 0; i < 6; i++) { mbeanNames[i] = new ObjectName(":type=ObservedObject,instance=" + i); monitored[i] = new ObservedObject(); echo(">>> CREATE ObservedObject = " + mbeanNames[i].toString()); server.registerMBean(monitored[i], mbeanNames[i]); switch (i) { case 0: case 3: monitorNames[i] = new ObjectName(":type=CounterMonitor,instance=" + i); monitor[i] = new CounterMonitor(); break; case 1: case 4: monitorNames[i] = new ObjectName(":type=GaugeMonitor,instance=" + i); monitor[i] = new GaugeMonitor(); break; case 2: case 5: monitorNames[i] = new ObjectName(":type=StringMonitor,instance=" + i); monitor[i] = new StringMonitor(); break; } echo(">>> CREATE Monitor = " + monitorNames[i].toString()); server.registerMBean(monitor[i], monitorNames[i]); monitor[i].addObservedObject(mbeanNames[i]); monitor[i].setObservedAttribute(attributes[i % 3]); monitor[i].setGranularityPeriod(500); final Monitor m = monitor[i]; Subject subject = new Subject(); echo(">>> RUN Principal = " + principals[i / 3]); subject.getPrincipals().add(new JMXPrincipal(principals[i / 3])); PrivilegedAction<Void> action = new PrivilegedAction<Void>() { public Void run() { m.start(); return null; } }; Subject.doAs(subject, action); } while(!testPrincipals(monitored, monitorNames, monitor, principals)); } finally { for (int i = 0; i < 6; i++) if (monitor[i] != null) monitor[i].stop(); } }
Example #10
Source File: StartStopTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #11
Source File: RuntimeExceptionTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #12
Source File: ThreadPoolTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
/** * Run test */ public int runTest(int monitorType) throws Exception { 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); monitor[i].start(); } if (!waiter.waiting(MAX_WAITING_TIME)) { echo("Error, not all "+nTasks+" monitor tasks are called after " +MAX_WAITING_TIME); return 1; } } finally { for (int i = 0; i < nTasks; i++) if (monitor[i] != null) monitor[i].stop(); } echo("All "+nTasks+" monitors are called."); return 0; }
Example #13
Source File: ReflectionExceptionTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #14
Source File: StartStopTest.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #15
Source File: GaugeMonitorDeadlockTest.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
void run() throws Exception { final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); final ObjectName observedName = new ObjectName("a:b=c"); final ObjectName monitorName = new ObjectName("a:type=Monitor"); mbs.registerMBean(new GaugeMonitor(), monitorName); final GaugeMonitorMBean monitorProxy = JMX.newMBeanProxy(mbs, monitorName, GaugeMonitorMBean.class); final TestMBean observedProxy = JMX.newMBeanProxy(mbs, observedName, TestMBean.class); final Runnable sensitiveThing = new Runnable() { public void run() { doSensitiveThing(monitorProxy, observedName); } }; final Runnable nothing = new Runnable() { public void run() {} }; final Runnable withinGetAttribute = (when == When.IN_GET_ATTRIBUTE) ? sensitiveThing : nothing; mbs.registerMBean(new Test(withinGetAttribute), observedName); monitorProxy.addObservedObject(observedName); monitorProxy.setObservedAttribute("Thing"); monitorProxy.setThresholds(105, 100); monitorProxy.setGranularityPeriod(10L); // 10 ms monitorProxy.setNotifyHigh(true); monitorProxy.setNotifyLow(true); monitorProxy.start(); final int initGetCount = observedProxy.getGetCount(); int getCount = initGetCount; for (int i = 0; i < 2000; i++) { // 2000 * 10 = 20 seconds getCount = observedProxy.getGetCount(); if (getCount != initGetCount) break; Thread.sleep(10); } if (getCount <= initGetCount) throw new Exception("Test failed: presumable deadlock"); // This won't show up as a deadlock in CTRL-\ or in // ThreadMXBean.findDeadlockedThreads(), because they don't // see that thread A is waiting for thread B (B.join()), and // thread B is waiting for a lock held by thread A // Now we know the monitor has observed the initial value, // so if we want to test notify behaviour we can trigger by // exceeding the threshold. if (when == When.IN_NOTIFY) { final AtomicInteger notifCount = new AtomicInteger(); final NotificationListener listener = new NotificationListener() { public void handleNotification(Notification n, Object h) { Thread t = new Thread(sensitiveThing); t.start(); try { t.join(); } catch (InterruptedException e) { throw new RuntimeException(e); } notifCount.incrementAndGet(); } }; mbs.addNotificationListener(monitorName, listener, null, null); observedProxy.setThing(1000); for (int i = 0; i < 2000 && notifCount.get() == 0; i++) Thread.sleep(10); if (notifCount.get() == 0) throw new Exception("Test failed: presumable deadlock"); } }
Example #16
Source File: ReflectionExceptionTest.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
/** * 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(); // Wait for granularity period (multiplied by 2 for sure) // Thread.sleep(granularityperiod * 2); // Check if notification was received // 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; }
Example #17
Source File: RuntimeExceptionTest.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
/** * 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(); // Wait for granularity period (multiplied by 2 for sure) // Thread.sleep(granularityperiod * 2); // Check if notification was received // 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; }
Example #18
Source File: StartStopTest.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
/** * 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"); Thread.sleep(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"); Thread.sleep(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; }
Example #19
Source File: ThreadPoolAccTest.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
public static void main (String args[]) throws Exception { ObjectName[] mbeanNames = new ObjectName[6]; ObservedObject[] monitored = new ObservedObject[6]; ObjectName[] monitorNames = new ObjectName[6]; Monitor[] monitor = new Monitor[6]; String[] principals = { "role1", "role2" }; String[] attributes = { "Integer", "Double", "String" }; try { echo(">>> CREATE MBeanServer"); MBeanServer server = MBeanServerFactory.newMBeanServer(); for (int i = 0; i < 6; i++) { mbeanNames[i] = new ObjectName(":type=ObservedObject,instance=" + i); monitored[i] = new ObservedObject(); echo(">>> CREATE ObservedObject = " + mbeanNames[i].toString()); server.registerMBean(monitored[i], mbeanNames[i]); switch (i) { case 0: case 3: monitorNames[i] = new ObjectName(":type=CounterMonitor,instance=" + i); monitor[i] = new CounterMonitor(); break; case 1: case 4: monitorNames[i] = new ObjectName(":type=GaugeMonitor,instance=" + i); monitor[i] = new GaugeMonitor(); break; case 2: case 5: monitorNames[i] = new ObjectName(":type=StringMonitor,instance=" + i); monitor[i] = new StringMonitor(); break; } echo(">>> CREATE Monitor = " + monitorNames[i].toString()); server.registerMBean(monitor[i], monitorNames[i]); monitor[i].addObservedObject(mbeanNames[i]); monitor[i].setObservedAttribute(attributes[i % 3]); monitor[i].setGranularityPeriod(500); final Monitor m = monitor[i]; Subject subject = new Subject(); echo(">>> RUN Principal = " + principals[i / 3]); subject.getPrincipals().add(new JMXPrincipal(principals[i / 3])); PrivilegedAction<Void> action = new PrivilegedAction<Void>() { public Void run() { m.start(); return null; } }; Subject.doAs(subject, action); } while(!testPrincipals(monitored, monitorNames, monitor, principals)); } finally { for (int i = 0; i < 6; i++) if (monitor[i] != null) monitor[i].stop(); } }
Example #20
Source File: ReflectionExceptionTest.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
/** * 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(); // Wait for granularity period (multiplied by 2 for sure) // Thread.sleep(granularityperiod * 2); // Check if notification was received // 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; }
Example #21
Source File: GaugeMonitorDeadlockTest.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
void run() throws Exception { final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); final ObjectName observedName = new ObjectName("a:b=c"); final ObjectName monitorName = new ObjectName("a:type=Monitor"); mbs.registerMBean(new GaugeMonitor(), monitorName); final GaugeMonitorMBean monitorProxy = JMX.newMBeanProxy(mbs, monitorName, GaugeMonitorMBean.class); final TestMBean observedProxy = JMX.newMBeanProxy(mbs, observedName, TestMBean.class); final Runnable sensitiveThing = new Runnable() { public void run() { doSensitiveThing(monitorProxy, observedName); } }; final Runnable nothing = new Runnable() { public void run() {} }; final Runnable withinGetAttribute = (when == When.IN_GET_ATTRIBUTE) ? sensitiveThing : nothing; mbs.registerMBean(new Test(withinGetAttribute), observedName); monitorProxy.addObservedObject(observedName); monitorProxy.setObservedAttribute("Thing"); monitorProxy.setThresholds(105, 100); monitorProxy.setGranularityPeriod(10L); // 10 ms monitorProxy.setNotifyHigh(true); monitorProxy.setNotifyLow(true); monitorProxy.start(); final int initGetCount = observedProxy.getGetCount(); int getCount = initGetCount; for (int i = 0; i < 2000; i++) { // 2000 * 10 = 20 seconds getCount = observedProxy.getGetCount(); if (getCount != initGetCount) break; Thread.sleep(10); } if (getCount <= initGetCount) throw new Exception("Test failed: presumable deadlock"); // This won't show up as a deadlock in CTRL-\ or in // ThreadMXBean.findDeadlockedThreads(), because they don't // see that thread A is waiting for thread B (B.join()), and // thread B is waiting for a lock held by thread A // Now we know the monitor has observed the initial value, // so if we want to test notify behaviour we can trigger by // exceeding the threshold. if (when == When.IN_NOTIFY) { final AtomicInteger notifCount = new AtomicInteger(); final NotificationListener listener = new NotificationListener() { public void handleNotification(Notification n, Object h) { Thread t = new Thread(sensitiveThing); t.start(); try { t.join(); } catch (InterruptedException e) { throw new RuntimeException(e); } notifCount.incrementAndGet(); } }; mbs.addNotificationListener(monitorName, listener, null, null); observedProxy.setThing(1000); for (int i = 0; i < 2000 && notifCount.get() == 0; i++) Thread.sleep(10); if (notifCount.get() == 0) throw new Exception("Test failed: presumable deadlock"); } }
Example #22
Source File: ThreadPoolTest.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
/** * Run test */ public int runTest(int monitorType) throws Exception { 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); monitor[i].start(); } if (!waiter.waiting(MAX_WAITING_TIME)) { echo("Error, not all "+nTasks+" monitor tasks are called after " +MAX_WAITING_TIME); return 1; } } finally { for (int i = 0; i < nTasks; i++) if (monitor[i] != null) monitor[i].stop(); } echo("All "+nTasks+" monitors are called."); return 0; }
Example #23
Source File: RuntimeExceptionTest.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
/** * 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(); // Wait for granularity period (multiplied by 2 for sure) // Thread.sleep(granularityperiod * 2); // Check if notification was received // 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; }
Example #24
Source File: StartStopTest.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
/** * 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"); Thread.sleep(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"); Thread.sleep(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; }
Example #25
Source File: ThreadPoolAccTest.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
public static void main (String args[]) throws Exception { ObjectName[] mbeanNames = new ObjectName[6]; ObservedObject[] monitored = new ObservedObject[6]; ObjectName[] monitorNames = new ObjectName[6]; Monitor[] monitor = new Monitor[6]; String[] principals = { "role1", "role2" }; String[] attributes = { "Integer", "Double", "String" }; try { echo(">>> CREATE MBeanServer"); MBeanServer server = MBeanServerFactory.newMBeanServer(); for (int i = 0; i < 6; i++) { mbeanNames[i] = new ObjectName(":type=ObservedObject,instance=" + i); monitored[i] = new ObservedObject(); echo(">>> CREATE ObservedObject = " + mbeanNames[i].toString()); server.registerMBean(monitored[i], mbeanNames[i]); switch (i) { case 0: case 3: monitorNames[i] = new ObjectName(":type=CounterMonitor,instance=" + i); monitor[i] = new CounterMonitor(); break; case 1: case 4: monitorNames[i] = new ObjectName(":type=GaugeMonitor,instance=" + i); monitor[i] = new GaugeMonitor(); break; case 2: case 5: monitorNames[i] = new ObjectName(":type=StringMonitor,instance=" + i); monitor[i] = new StringMonitor(); break; } echo(">>> CREATE Monitor = " + monitorNames[i].toString()); server.registerMBean(monitor[i], monitorNames[i]); monitor[i].addObservedObject(mbeanNames[i]); monitor[i].setObservedAttribute(attributes[i % 3]); monitor[i].setGranularityPeriod(500); final Monitor m = monitor[i]; Subject subject = new Subject(); echo(">>> RUN Principal = " + principals[i / 3]); subject.getPrincipals().add(new JMXPrincipal(principals[i / 3])); PrivilegedAction<Void> action = new PrivilegedAction<Void>() { public Void run() { m.start(); return null; } }; Subject.doAs(subject, action); } while(!testPrincipals(monitored, monitorNames, monitor, principals)); } finally { for (int i = 0; i < 6; i++) if (monitor[i] != null) monitor[i].stop(); } }
Example #26
Source File: ReflectionExceptionTest.java From hottub with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #27
Source File: ThreadPoolTest.java From hottub with GNU General Public License v2.0 | 4 votes |
/** * Run test */ public int runTest(int monitorType) throws Exception { 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); monitor[i].start(); } if (!waiter.waiting(MAX_WAITING_TIME)) { echo("Error, not all "+nTasks+" monitor tasks are called after " +MAX_WAITING_TIME); return 1; } } finally { for (int i = 0; i < nTasks; i++) if (monitor[i] != null) monitor[i].stop(); } echo("All "+nTasks+" monitors are called."); return 0; }
Example #28
Source File: RuntimeExceptionTest.java From hottub with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #29
Source File: StartStopTest.java From hottub with GNU General Public License v2.0 | 4 votes |
/** * 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; }
Example #30
Source File: ThreadPoolAccTest.java From hottub with GNU General Public License v2.0 | 4 votes |
public static void main (String args[]) throws Exception { ObjectName[] mbeanNames = new ObjectName[6]; ObservedObject[] monitored = new ObservedObject[6]; ObjectName[] monitorNames = new ObjectName[6]; Monitor[] monitor = new Monitor[6]; String[] principals = { "role1", "role2" }; String[] attributes = { "Integer", "Double", "String" }; try { echo(">>> CREATE MBeanServer"); MBeanServer server = MBeanServerFactory.newMBeanServer(); for (int i = 0; i < 6; i++) { mbeanNames[i] = new ObjectName(":type=ObservedObject,instance=" + i); monitored[i] = new ObservedObject(); echo(">>> CREATE ObservedObject = " + mbeanNames[i].toString()); server.registerMBean(monitored[i], mbeanNames[i]); switch (i) { case 0: case 3: monitorNames[i] = new ObjectName(":type=CounterMonitor,instance=" + i); monitor[i] = new CounterMonitor(); break; case 1: case 4: monitorNames[i] = new ObjectName(":type=GaugeMonitor,instance=" + i); monitor[i] = new GaugeMonitor(); break; case 2: case 5: monitorNames[i] = new ObjectName(":type=StringMonitor,instance=" + i); monitor[i] = new StringMonitor(); break; } echo(">>> CREATE Monitor = " + monitorNames[i].toString()); server.registerMBean(monitor[i], monitorNames[i]); monitor[i].addObservedObject(mbeanNames[i]); monitor[i].setObservedAttribute(attributes[i % 3]); monitor[i].setGranularityPeriod(500); final Monitor m = monitor[i]; Subject subject = new Subject(); echo(">>> RUN Principal = " + principals[i / 3]); subject.getPrincipals().add(new JMXPrincipal(principals[i / 3])); PrivilegedAction<Void> action = new PrivilegedAction<Void>() { public Void run() { m.start(); return null; } }; Subject.doAs(subject, action); } while(!testPrincipals(monitored, monitorNames, monitor, principals)); } finally { for (int i = 0; i < 6; i++) if (monitor[i] != null) monitor[i].stop(); } }