相关疑难解决方法(0)

为何在配置JMX时Java打开3个端口?

我在Centos6上使用JDK7运行我的Java程序.我使用以下选项启用JMX:

JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9123 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=true"
Run Code Online (Sandbox Code Playgroud)

当我检查打开哪些端口时,我发现了2个额外的随机端口:

netstat -plunt | grep java
tcp        0      0 :::9123                     :::*                        LISTEN      13295/java
tcp        0      0 :::59927                    :::*                        LISTEN      13295/java
tcp        0      0 :::59928                    :::*                        LISTEN      13295/java
Run Code Online (Sandbox Code Playgroud)

请注意,每次重启仅配置的端口9123保持不变,另外两个端口会更改值.

netstat -plunt | grep java
tcp        0      0 :::9123                     :::*                        LISTEN      13331/java
tcp        0      0 :::59932                    :::*                        LISTEN      13331/java
tcp        0      0 :::59933                    :::*                        LISTEN      13331/java
Run Code Online (Sandbox Code Playgroud)

什么是2个额外端口以及为什么打开它们?

如何配置2个额外的随机端口?

如何配置::ffff:127.0.0.1将在JMX打开的所有端口之前显示?

为什么在与JConsole连接时不使用一个端口?

添加以澄清答案

不幸的是,附加的随机端口仍然打开为了提醒您,我使用Centos 6.我的Tomcat设置看起来像这样(Tomcat不部署任何应用程序):

CATALINA_OPTS="${CATALINA_OPTS}  -XX:+DisableAttachMechanism -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=true -Djava.rmi.server.useLocalHostname=true -Djava.rmi.server.useCodebaseOnly=true -Dcom.sun.management.jmxremote.port=9123 -Dcom.sun.management.jmxremote.rmi.port=9123" …
Run Code Online (Sandbox Code Playgroud)

java jmx rmi

49
推荐指数
2
解决办法
4万
查看次数

如何获得Jetty线程转储?

我在Sun的JVM上的Jetty 6.1.24-6上运行了一个64位Ubuntu Server 10.10,它们都是从标准的Ubuntu存储库安装的.

我正在尝试追踪这个服务器的问题(一段时间后100%cpu,它可能与NIO的Selector上的一个已知错误有关,虽然看起来将连接器更改为旧的io SocketConnector并没有解决问题! ),并需要采取线程转储.

不幸的是我无法获得线程转储.我试图将SIGQUIT发送到进程,并尝试将JStack附加到它,但两种方法都不起作用.

我看到SIGQUIT(在Jetty生成的任何日志文件中)都没有输出,而JStack,即使以root(或jetty)和"-F"运行,也说它已附加到进程,但是然后阻止并不再产生输出!

我怎样才能获得线程转储?

jetty

4
推荐指数
1
解决办法
4407
查看次数

标签 统计

java ×1

jetty ×1

jmx ×1

rmi ×1