This is a JMX client sample:
public class JmxTests {
/**
* Run with the following VM options:
* -Dcom.sun.management.jmxremote.port=9999
* -Dcom.sun.management.jmxremote.authenticate=false
* -Dcom.sun.management.jmxremote.ssl=false
*
* @throws IOException
*/
@Test
public void test() throws IOException, MalformedObjectNameException, InstanceNotFoundException, MBeanException, AttributeNotFoundException, ReflectionException {
echo("\nCreate an RMI connector client and "
+ "connect it to the RMI connector server");
// JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://:9999/jmxrmi");
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://10.99.99.35:30001/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
echo("\nDomains:");
String domains[] = mbsc.getDomains();
Arrays.sort(domains);
for (String domain : domains) {
echo("\tDomain = " + domain);
}
echo("\nMBeanServer default domain = " + mbsc.getDefaultDomain());
echo("\nMBean count = " + mbsc.getMBeanCount());
echo("\nQuery MBeanServer MBeans:");
Set<ObjectName> names = new TreeSet<ObjectName>(mbsc.queryNames(null, null));
for (ObjectName name : names) {
echo("\tObjectName = " + name);
}
ObjectName objectName = new ObjectName("java.lang:type=OperatingSystem");
double systemLoadAverage = (double) mbsc.getAttribute(objectName, "SystemLoadAverage");
System.out.println(systemLoadAverage);
jmxc.close();
}
private void echo(String message) {
System.out.println(message);
}
}
References:
https://docs.oracle.com/javase/tutorial/jmx/remote/custom.html
http://docs.oracle.com/cd/E19226-01/821-0031/gcitw/index.html
No comments:
Post a Comment