澳门新葡萄京官网注册 4

澳门新葡萄京官网注册JConsole JDK1.6 使用手册

问题:

自个儿急需选取JMX连接本地JVM的Java程序。换句话说,笔者想付出三个JMX的客商端来结构二个本地Java程序。

  • 请不要推荐使用JConsole!JConsole不合适,因为JConsole是三个通用的JMX客商端,对主程序的习性存在消极的一面影响。
  • Oracle网站上有三个使用RMIConnector和“主机 :
    端口号”为参数的例子,可是本人不明了在如什么地方方设置JMX的端口号?
  • JConsole能够筛选PID来连接Java进度。可是在JMX的API中,笔者找不到其余方式是选取PID作为参数的。

JConsole JDK1.6 使用手册

JConsole的图形客户分界面是四个合乎Java管理扩充(JMX)标准的监测工具。
JConsole使用Java虚构机(Java
VM),提供在Java平台上运行的应用程序的属性和财富消耗的新闻。

在Java平台,规范版(Java
SE平台)6,JConsole的已经更新到近年来的外观和认为的Windows和GNOME桌面(其余平台,将前段时间标准的Java图形的外观和以为)。
在这里个文件中提出的显示屏截图是从Windows XP上运维的接口的二个实例。

回复:

我们利用一些相近上面包车型大巴顺序来连接JMX服务器。不过,要求在运营服务器时钦定以下参数:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=1234
-Dcom.sun.management.jmxremote.ssl=false

为了绑定特定地点,你须要在大增下边包车型大巴VM参数:

-Djava.rmi.server.hostname=A.B.C.D

那般,你就可以像下边包车型地铁JMX客商端代码一样连接你的服务器了:

String host = "localhost";  // or some A.B.C.D
int port = 1234;
String url = "service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi";
JMXServiceURL serviceUrl = new JMXServiceURL(url);
JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceUrl, null);
try {
   MBeanServerConnection mbeanConn = jmxConnector.getMBeanServerConnection();
   // now query to get the beans or whatever
   Set<ObjectName> beanSet = mbeanConn.queryNames(null, null);
   ...
} finally {
   jmxConnector.close();
}

小编们也得以不行使VM参数,代码自身能够因而编制程序在钦命端口号公布。可是自身想这么些已经比你的要求更头晕目眩了。

要是要基于PID来连接,据本人将来所知,你供给利用Java
6以上的本子。作者没动用过上边包车型大巴代码,可是看起是能够健康专门的学问的:

List<VirtualMachineDescriptor> vms = VirtualMachine.list();
for (VirtualMachineDescriptor desc : vms) {
    VirtualMachine vm;
    try {
        vm = VirtualMachine.attach(desc);
    } catch (AttachNotSupportedException e) {
        continue;
    }
    Properties props = vm.getAgentProperties();
    String connectorAddress =
        props.getProperty("com.sun.management.jmxremote.localConnectorAddress");
    if (connectorAddress == null) {
        continue;
    }
    JMXServiceURL url = new JMXServiceURL(connectorAddress);
    JMXConnector connector = JMXConnectorFactory.connect(url);
    try {
        MBeanServerConnection mbeanConn = connector.getMBeanServerConnection();
        Set<ObjectName> beanSet = mbeanConn.queryNames(null, null);
        ...
    } finally {
        jmxConnector.close();
    }
}

本身已揭橥过叁个新的SimpleJMX包,该包能帮忙十分轻巧的启航三个JMX服务,并向远程客商端发送beans。

//创建一个新的服务器并监听8000端口
JmxServer jmxServer = new JmxServer(8000);
//启动服务器
jmxServer.start();
//注册下面定义的lookupCache对象
jmxServer.register(lookupCache);
jmxServer.register(someOtherObject);
//停止服务
jmxServer.stop();

该包确实有贰个顾客端的接口,但是近些日子从未人一种机制是足以经过PID来找出进度的,只帮助主机/端口的重新整合措施查找。

启动JConsole

JConsole是可实施文件,在JDK_HOME / bin目录其中JDK_HOME是在Java开采工具包(JDK)的设置目录。
假设此目录是在您的系统路线,你能够伊始只需键入命令jconsole
不然,您必得键入可试行文件的完整路线。

命令语法

你能够利用JConsole来监视本地应用程序以至远程应用程序。


注-使用JConsole监视本地应用程序在付出和创立原型是那多少个管用的,但不推荐用于临蓐条件,因为jconsole自己也消耗一大波的系统能源。
远程监察和控制指出隔开被监视机器。


jconsole命令的语法完整的参照他事他说加以考察,请参阅
JConsole的授命手册页:Java监视和管控台。

设置本地监察和控制

在命令行中键入以下命令运转JConsole的。

 JConsole

当JConsole的运转时,您将取得二个本地运维JConsole的可以连接到的全数的Java应用程序的选拔。

若果你要监督的一定应用程序,你了解该应用程序的经过ID,那么你也足以运转JConsole连接到该应用程序。
此应用程序必得和JConsole运维在同等的顾客ID下。 该命令的语法以下。

 %JConsole中 processID

以上的processID是应用程序的历程ID(PID)。
您能够用以下方式分明二个应用程序的PID:

  • 在UNIX或Linux系统,可以使用 ps命令找到正在运作的Java实例的PID 。
  • 在Windows系统上,您能够运用职责微处理机, 找到 java 或者
    javaw进程的PID。
  • 你还足以选拔jps命令行实用程序来鲜明的PID。
    见的手册页的Java设想机进程景况工具 。

比如说,如果你分明,
记事本应用程序的进程ID是2956,那么你能够用下边包车型大巴指令运转JConsole。

 JConsole 2956

jconsole和被监视的应用程序必需运营在同一的客商下,
具有管理和监察系列采纳的操作系统的公文权限。
倘令你不点名叁个进程ID,jconsole会自动物检疫查测量试验全部地点Java应用程序,并出示三个对话框,令你筛选二个(参阅连接到
JMX代理)。

欲掌握越多音讯,请参阅当地监察和控制和管理 。

 

设置远程监察和控制

要运转远程监察和控制JConsole的,您能够运用上面包车型客车命令语法。

 JConsole 主机名: portNum

主机名是内需监听的主机,portNum是你运转Java设想机时钦点的JMX代理的端口号。
欲精通越来越多音信,请参阅远程监察和控制和管理 。

倘使您不钦定二个主机名/端口号的组合,那么jconsole会展现叁个老是对话框(
连接到JMX代理 ),让您输入二个主机名和端口号。

创立安全的长途监察和控制

你也能够使用安全套接字层(SSL)进行安全的连接。
命令运行JConsole的日喀则连接是在第2章,监控和治本选取JMX技术 启用SSL
JConsole的远程监控 。

 

连接到三个JMX代理

如果你运转jconsole的时候钦点的JMX代理连接到的参数,它会自动开端监视钦赐的Java
VM。
您能够连接到不相同的主机在别的时候经过选取总是|新连接,并输入必要的新闻。

要不,假若您不提供其余参数,当你运营JConsole的,第一眼见到的是连连对话框。
此对话框有五个选用,允许连接到地面或远​​程进度。

 

动态连接

在从前的版本的Java
SE平台,应用程序,你想监测与JConsole的内需与下部的选项开首。

 %,Dcom.sun.management.jmxremote

唯独,与Java SE
6平台提供的JConsole的版本,能够接二连三到其它应用程序,扶植附加的API。
换句话说,任何在Java SE 6
HotSpot设想机运转的应用程序由JConsole自动检验,并无需使用上述的指令行选项早先。

 

JConsole的连年到二个本土进程

假若您不提供连接到一个特定的JMX代理运转JConsole的,你拜会到上边包车型地铁对话框窗口。

 

图3-1开立四个老是到一个地面进度

澳门新葡萄京官网注册 1

地面进程选项列出全体运营在地面系统上且和JConsole程序同样的客户ID的Java
SE6
应用,满含经过ID和她们的类或参数消息。采用你要监视的应用程序,然后单击“连接”按键。
本地过程的名册中包涵以下种类的Java虚构机的运作的应用程序。

  • 启用项理代理的行使,满含Java SE 6平台指定
    Dcom.sun.management.jmxremote选项
    Dcom.sun.management.jmxremote.port选项最初的J2SE 5.0平台上的采纳。
    别的,名单中还包罗其余应用程序,Java SE
    6平台上上马并未其余处理属性,但今后JConsole的偏重,那使得在运营时管理代理。
  • 剥夺管理代理,可连接的施用,应用程序在运作时禁止使用加载管理代。Java SE
    6平台上上马扶持附加的API的应用程序,
    支持动态的应用程序连接,运转关押代理能够不经过在命令行指定
    com.sun.management.jmxremote或com.sun.management.jmxremote.port选项。
    若是选用此类应用程序连,将启用该行使的管住代理。
    在延续的例子所示的对话框图 3-1中,NetBeans
    IDE和jconsole本人也均始于在Java SE 6平台的虚构机。
    同期出现在健康的文本,那表示,JConsole的可以连绵不断到它们。
    在图3-1中,JConsole是选定的,值得注意的是可知的。
  • 剥夺应用程序,不拘系,管理代理。那一个方法包涵起首的J2SE
    1.4.2阳台上的接收,或J2SE 5.0平台上开首没有
    Dcom.sun.management.jmxremote
    com.sun.management.jmxremote.port选项​​。
    那些应用程序的体现表中展现为深紫和JConsole中不可能连接到他俩。
    字谜应用程序在连年的事例所示的对话框图
    3-1,未有其余的田间管理属性与J2SE
    5.0阳台的虚构机开首启用JMX代理,并据此显得为深杏黄,不能够取舍。

图3-2并未有管理代理尝试连接纳应用程序启用

澳门新葡萄京官网注册 2

 

 

JConsole的连年到长途进度

当张开连接对话框,你也得以连接到长途进度。

 

图3-3开立一个总是到长途进度

澳门新葡萄京官网注册 3

要监督远程Java设想机上运转的历程中,你必须要提供下列资料。

  • 主机名:Java虚构机正在周转的机械上的称谓。
  • 端口号:当您运营Java虚构机钦赐JMX代理端口号码。
  • 顾客名和密码:客商名和密码能力动用(需求监测唯有通过JMX代理,须要密码验证的Java虚构机)。

至于设置JMX代理的端口号的消息 ,请参阅启用远程管理。
有关客户名和密码的消息,请参阅使用密码和拜候文件。

 

使用JMX服务URL连接

您还足以行使远程进度选项钦命他们的JMX服务ULANDL连接其余JMX代理,顾客名和密码。
一个JMX服务U奥德赛L的语法必要你提供用于实行连接的传输协议,以至服务接入点。

 

图3-4连选择叁个JMX代理使用的JMX服务U卡宴L

澳门新葡萄京官网注册 4

设若JMX代理使用一个不带有在Java平台上的连接器,你供给丰裕连接器类到类路线中,如下所示。

 %JConsole- J - Djava.class.path = JAVA_HOME / lib中/ jconsole.jar:JAVA_HOME / 

 

越多详细情形见请继续阅读下一页的优良内容:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 下一页

JDK1.6 使用手册
JConsole的图形客商分界面是二个符合Java处理扩充(JMX)标准的监测工具。
JConsole使用Java虚构机(Java VM),提供在Java平…

发表评论

电子邮件地址不会被公开。 必填项已用*标注