JMX : Remote Management
来源:互联网 发布:华东电脑旗下华讯网络 编辑:程序博客网 时间:2024/04/30 14:38
JMX connector
remote Java client 通过connector来访问MBean,connector的client side的接口和MBean的接口保持一致。
两部分:
connector client : 创建与server之间的连接。通常处于和server不同的JVM上,或处于不同的机器上。
connector server : 与MBean Server一起,监听来自client的请求。
connection protocol是基于RMI的 : JMX client远程连接到MBeanServer,操作MBean,就像操作本地的对象一样。
out-of-the-box RMI connector
JavaSE提供了out-of-the-box RMI connector,用户就不需要自定义特定的connector了。
通过特定的Java启动参数来启动程序,就可以启动程序的out-of-the-box management agent。
如此,实现了JMX technology的远程程序就可以连接到程序并进程操作,比如JConsole。
对于前面的Standard MBean,只需启动时加上参数:
-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false注: 此为测试程序,因此没有authenticate。
使用JConsole:
前面说的测试都是用JRE自带的JConsole,下面来编写自己的Client来访问MBean。
package test.xue.mbean.client;import java.io.IOException;import java.util.Set;import javax.management.JMX;import javax.management.MBeanServerConnection;import javax.management.MalformedObjectNameException;import javax.management.ObjectName;import javax.management.remote.JMXConnector;import javax.management.remote.JMXConnectorFactory;import javax.management.remote.JMXServiceURL;import test.xue.mbean.HelloMBean;public class MBeanClient {public static void main(String[] args) throws IOException,MalformedObjectNameException, NullPointerException {JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://192.168.1.102:9999/jmxrmi");JMXConnector connector = JMXConnectorFactory.connect(url);MBeanServerConnection connection = connector.getMBeanServerConnection();// list domainsString[] domains = connection.getDomains();for (String domain : domains) {System.out.println("domain : " + domain);}// list ObjectNamesSet<ObjectName> names = connection.queryNames(null, null);for (ObjectName name : names) {System.out.println("ObjectName : " + name);}// remote operationObjectName name = new ObjectName("test.xue.mbean:type=Hello");HelloMBean mbean = JMX.newMBeanProxy(connection, name, HelloMBean.class);mbean.sayHello();System.out.println("1 + 2 ="+mbean.add(1, 2));// close connectionconnector.close();}}
输出为:
domain : JMImplementationdomain : com.sun.managementdomain : java.langdomain : test.xue.mbeandomain : java.util.loggingObjectName : java.lang:type=MemoryObjectName : java.lang:type=GarbageCollector,name=CopyObjectName : test.xue.mbean:type=HelloObjectName : java.lang:type=MemoryPool,name=Code CacheObjectName : java.lang:type=RuntimeObjectName : java.lang:type=ClassLoadingObjectName : java.lang:type=MemoryPool,name=Perm Gen [shared-rw]ObjectName : java.lang:type=ThreadingObjectName : java.lang:type=MemoryPool,name=Perm Gen [shared-ro]ObjectName : java.util.logging:type=LoggingObjectName : java.lang:type=CompilationObjectName : java.lang:type=MemoryPool,name=Eden SpaceObjectName : com.sun.management:type=HotSpotDiagnosticObjectName : java.lang:type=GarbageCollector,name=MarkSweepCompactObjectName : java.lang:type=MemoryPool,name=Survivor SpaceObjectName : java.lang:type=OperatingSystemObjectName : java.lang:type=MemoryPool,name=Perm GenObjectName : java.lang:type=MemoryPool,name=Tenured GenObjectName : java.lang:type=MemoryManager,name=CodeCacheManagerObjectName : JMImplementation:type=MBeanServerDelegate1 + 2 =3
- JMX : Remote Management
- Remote JMX 调用
- JMX Management and Monitoring
- Java Management Extensions (JMX)
- Java Management Extensions (JMX)
- 远程管理 Remote Management
- Adding Remote JMX for Red5
- A JMX remote connection fail error
- Connecting remote tomcat JMX instance using jConsole
- JSR 3: Java Management Extensions (JMX) Specification
- Monitoring and Management Using JMX Notice
- Spring+JMX(Java Management Extensions)
- JMX “javax.management.NotCompliantMBeanException” 异常解决
- Java Management extentsions(jmx)与tomcat
- java Management Extensions (JMX): End of Trail
- JMX(Java Management Extension)学习
- jppf javax.management.remote.message.HandshakeBeginMessage
- JMX 的remote port的查找 与设置
- 如何掌握程序语言
- Oracle ref cursor使用
- PicoContainer(Ioc容器)在测试用例中的应用(一)
- IRP详解(3)----UMDF下处理流程
- PicoContainer(Ioc容器)在测试用例中的应用(二)
- JMX : Remote Management
- EM算法简介
- 学生表 课程表 成绩表 教师表 50个常用sql语句
- 【Dana的马尔代夫游记】终极篇~~~希尔顿伊露岛~~天堂之梦~~各种图~(一)
- C/C++中extern关键字详解
- linux0.11内存memory.c一些函数的简单的注释(一)
- C/C++数组名与指针区别深入探索
- 从古埃及分数开始
- Android培训班(113)start_kernel函数10