- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
看来我过去从来没有让这个工作过。目前,我知道它不起作用。
但是我们启动了 Java 进程:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=6002
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
我可以远程登录到端口,并且“有东西在那里”(也就是说,如果我不启动该进程,则没有任何答案,但如果我启动,它就会),但我无法让 JConsole 工作填充在IP和端口中。
看起来应该如此简单,但是没有错误,没有噪音,什么也没有。只是不起作用。
有人知道这方面的热门提示吗?
最佳答案
我有一个解决方案:
如果您的Java 进程在防火墙后面的 Linux 上运行,并且您希望在本地计算机上的 Windows 上启动 JConsole/Java VisualVM/Java Mission Control 来连接它到Java 进程的 JMX 端口。
您需要通过 SSH 登录访问您的 Linux 计算机。所有通信都将通过 SSH 连接进行隧道传输。
提示:无论是否有防火墙,此解决方案都有效。
缺点:每次重新启动 java 进程时,您都需要再次执行 4 - 9 中的所有步骤。
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
At least the putty.exe
<jmx-remote-port>
jmx-remote-port = 15666
这必须完全像这样完成。如果按照下面的方式完成,它适用于防火墙后面的 Linux 机器(它的工作原理是 -Djava.rmi.server.hostname=localhost
参数)。
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=<jmx-remote-port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.local.only=false
-Djava.rmi.server.hostname=localhost
java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=15666 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=localhost ch.sushicutta.jmxremote.Main
ps -ef | grep <java-processname>
result ---> <process-id>
ps -ef | grep ch.sushicutta.jmxremote.Main
result ---> 24321
java 进程在 Linux 机器上打开一个新的 TCP 端口,RMI 服务器 stub 将可供下载。该端口还需要通过 SSH 隧道可用才能连接到 Java 虚拟机。
使用netstat -lp
可以找到这个端口,lsof -i
也可以提示java进程打开了哪个端口。
注意:当 java 进程启动时,此端口始终会更改。
netstat -lp | grep <process-id>
tcp 0 0 *:<jmx-remote-port> *:* LISTEN 24321/java
tcp 0 0 *:<rmi-server-port> *:* LISTEN 24321/java
result ---> <rmi-server-port>
netstat -lp | grep 24321
tcp 0 0 *:15666 *:* LISTEN 24321/java
tcp 0 0 *:37123 *:* LISTEN 24321/java
result ---> 37123
Source port: <jmx-remote-port>
Destination: localhost:<jmx-remote-port>
[x] Local
[x] Auto
Source port: <rmi-server-port>
Destination: localhost:<rmi-server-port>
[x] Local
[x] Auto
Source port: 15666
Destination: localhost:15666
[x] Local
[x] Auto
Source port: 37123
Destination: localhost:37123
[x] Local
[x] Auto
让 putty session 保持打开状态。
当您登录时,Putty 会通过 SSH 端口 22 将所有 TCP 连接隧道连接到 Linux 计算机。
JMX 端口:
Windows machine: localhost:15666 >>> SSH >>> linux machine: localhost:15666
RMI 服务器 stub 端口:
Windows Machine: localhost:37123 >>> SSH >>> linux machine: localhost:37123
这有效,因为 JConsole/Java VisualVM/Java Mission Control 认为您连接到本地 Windows 计算机上的端口。但是 Putty 将所有负载发送到端口 15666 到您的 Linux 机器。
在 Linux 机器上,java 进程首先给出应答并发回 RMIServer 端口。在此示例中为 37123。
然后 JConsole/Java VisualVM/Java Mission Control 认为它连接到 localhost:37123 并且 putty 会将整个负载转发到 Linux 机器
java 进程应答并且连接打开。
[x] Remote Process:
service:jmx:rmi:///jndi/rmi://localhost:<jndi-remote-port>/jmxrmi
[x] Remote Process:
service:jmx:rmi:///jndi/rmi://localhost:15666/jmxrmi
关于jmx - 有人曾经使用过远程 JMX JConsole 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/151238/
当我使用 Google 可视化库创建可视化时,这是一个持续的恶化: 此图的左侧和右侧至少有 75 像素,顶部和底部还有 30-40 像素。馅饼本身没有理由不能更大,当我提供足够的空间时,右边的图例也没
我正在将我的应用程序转移到另一台服务器,但我遇到了一些似乎没有过期的 PHP session 问题。 在 php.ini 中我设置了: session.gc_probability = 1 sessi
关闭。这个问题需要更多 focused 。它目前不接受答案。 想要改进这个问题?更新问题,使其只关注 editing this post 的一个问题。 关闭 9 年前。 Improve this q
有时在项目结束时我会想“哇,我刚刚为那个项目写了很多行代码。”但我永远不知道到底有多少。 有什么方法可以实际列出自创建以来添加到 repo 中的所有代码行吗? 我认为那种东西看起来会很有趣。 编辑:我
我并不完全理解 Apple 的 iOS 4 模型,我已经研究了几个小时的文档,但我仍然感谢一些帮助。 后台 iPhone 应用程序会退出吗?例如,当我关闭 Loopt 等位置跟踪应用程序时,它将进入后
一些背景 我目前正在开发一个移动网站,因此我一直在 Firefox 中使用 User Agent switcher 切换用户代理。 (可爱的插件)。但是当我转到管理站点时,它呈现为 WML ,这让 F
我是一名优秀的程序员,十分优秀!