我想要连接到在 AIX 上运行的 Java J9 JVM 版本 7。 Java 应用程序配置为启用健康中心代理,系统报告 JMX 端口已打开。 但是当我启动健康中心客户端(我通过更新站点安装到我的Eclipse实例上),在JMX连接向导中输入主机名和端口号时,它开始从我指定的端口扫描到portnr+100,然后它说他找不到JVM。
我错过了什么吗?
AIX 上的 Java 版本
java version "1.7.0"
Java(TM) SE Runtime Environment (build pap6470_27-20131115_04)
IBM J9 VM (build 2.7, JRE 1.7.0 AIX ppc64-64 Compressed References 20131114_175264 (JIT enabled, AOT enabled)
J9VM - R27_Java727_GA_20131114_0833_B175264
JIT - tr.r13.java_20131113_50523
GC - R27_Java727_GA_20131114_0833_B175264_CMPRSS
J9CL - 20131114_175264)
JCL - 20131113_01 based on Oracle 7u45-b18de here
启动Java应用程序的命令行
java -Xmn100m -Xms400m -Xmx400m -Xhealthcenter ...
关于健康中心代理的JVM日志
Mar 18, 2016 6:15:09 PM com.ibm.java.diagnostics.healthcenter.agent.mbean.HCLaunchMBean <init>
INFO: Agent version "2.2.0.20131003"
Mar 18, 2016 6:15:09 PM com.ibm.java.diagnostics.healthcenter.agent.mbean.HCLaunchMBean startMBeanServer
INFO: IIOP will be listening on the next available system assigned port. Use com.ibm.java.diagnostics.healthcenter.agent.iiop.port to specify a port
Mar 18, 2016 6:15:09 PM com.ibm.java.diagnostics.healthcenter.agent.mbean.HCLaunchMBean startAgent
INFO: Health Center agent started on port 1972.
服务器计算机上打开的代理端口
(1) machine:user1:/home/user1> lsof -nP | grep LISTEN | grep 1972
java 30474378 user1 77u IPv6 0xf1000e000a345bb8 0t0 TCP *:1972 (LISTEN)
(1) machine:user1:/home/user1> ps ax | grep 30474378
24707098 pts/3 A 0:00 grep 30474378
30474378 - A 0:13 /usr/bin/java -Xmn100m -Xms400m -Xmx400m -Xhealthcenter -
(1) machine:user1:/home/user1>
从客户端计算机打开的端口:
Starting Nmap 6.47 ( http://nmap.org ) at 2016-03-18 18:19 BRT
Nmap scan report for machine (172.1.1.10)
Host is up (0.024s latency).
Not shown: 973 closed ports
PORT STATE SERVICE
...
1972/tcp open intersys-cache
...
Nmap done: 1 IP address (1 host up) scanned in 4.24 seconds
编辑:我意识到 AIX 计算机上打开的端口监听 IPv6。我添加了 -Djava.net.preferIPv4Stack=true
属性,然后代理开始监听 IPv4 端口:
(1) machine:user1:/home/user1/log> lsof -nP | grep LISTEN | grep IPv4 | grep 1972
java 57016438 user1 77u IPv4 0xf1000e0004dbd3b8 0t0 TCP *:1972 (LISTEN)
(1) machine:user1:/home/user1/log>
但是,健康中心客户端在该端口上找不到 JVM
最佳答案
与该 JVM 一起打包的 Health Center 代理相当老旧(近 3 1/2 岁)。您可以按照 https://www.ibm.com/support/knowledgecenter/SS3KLZ/com.ibm.java.diagnostics.healthcenter.doc/topics/installingagent.html 上的说明进行操作吗?将代理升级到最新版本,看看问题是否仍然出现?
关于java - 如何将健康中心连接到 AIX 上的 IBM J9 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36095809/