rus*_*shi 21 monitoring jmx visualvm
我是Java的新手,我遇到了将远程主机连接到的问题JVisualVM.
我搜索了互联网,并按照那里提到的所有步骤,但仍然无法解决问题.我遵循的步骤是:
我首先在远程服务器上创建一个jstatd.all.policy文件,然后在远程服务器上启动了jstatd $JAVA_HOME/bin.该文件包含:grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission;};
我开始Jstatd为jstatd -J-Djava.security.policy=jstatd.all.policy
我在远程主机上启动了Java应用程序:
java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false application_name
Run Code Online (Sandbox Code Playgroud)然后我开始作为JVisualVM我的本地机器的实例,当我添加远程主机时,它已连接但我无法看到任何Java进程.
任何人都可以帮我这个.
谢谢.
Jac*_*ski 14
连接到Glassfish应用程序服务器时遇到类似的问题.查看对我有用的解决方案,因为它们对您来说可能是相同的:
-Djava.rmi.server.hostname =*Remote_Server_External_IP_Address*
如果防火墙阻塞是一个问题,那么我建议使用SSH隧道尝试XMing(这很容易设置).如果您在设置时遇到问题
,请遵循以下说明:
使用Xming远程使用VisualVM(我的博客)使用XMing的最大优点是,当启用SSH时,它几乎总能工作.您只需将VisualVM文件放在远程主机上并从命令行运行它.XWindow将在您的本地计算机上显示VisualVM窗口.
它有可能是VisualVM问题 - 尝试使用其他工具来验证错误.我推荐JConsole.它的工作方式类似于VisualVM,我也在我的博客上描述了细节
小智 11
您需要使用指向服务器的外部IP或主机名的附加选项启动jstatd:
statd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=my_server_ip/hostname
Run Code Online (Sandbox Code Playgroud)
答案基于:https://java.net/projects/visualvm/lists/users/archive/2010-03/message/8
要连接到远程VM,您必须使用特定选项启动该远程VM:
java
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9000
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
class
Run Code Online (Sandbox Code Playgroud)
VM启动后,转到VisualVM并执行以下操作:
有关Java监视和管理平台的更多详细信息,请参见此处.
以下是执行此操作的步骤:
mvn exec:java -Djava.rmi.server.hostname=<remote_host_name> -Dexec.args="-pr 1099 -ph 1100 -pv 1101" (在 ejstatd 文件夹中) :(用于“jstatd”类型连接)(仅-Djava.rmi.server.hostname在远程主机的主机名与您从本地网络看到的主机名不匹配时指定)-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1102 -Dcom.sun.management.jmxremote.rmi.port=1102 -Djava.rmi.server.hostname=<remote_host_name>用于“JMX”类型连接)(与上一点的注释相同-Djava.rmi.server.hostname)1099、1100和110111021099,可以在“高级设置”中更改)<remote_host_name>:1102在“连接”输入中输入“ ”,勾选“不需要SSL连接”免责声明:我是开源ejstatd工具的作者。
| 归档时间: |
|
| 查看次数: |
30668 次 |
| 最近记录: |