我已经尝试了书中的每一个食谱,但今天的事情根本不适用......
我正在尝试使用VisualVM来配置在远程服务器上运行的Java应用程序,因此我使用Google搜索和Google搜索并搜索了这样做的方法,我最终得到了这个解决方案:
UPDATE t
SET ColumnB = BValue
FROM Table t
INNER JOIN
(
SELECT 1 AValue, 'Mouse' BValue UNION
SELECT 2, 'Cat' UNION
SELECT 3, 'Dog' UNION
SELECT 4, 'Wolf'
) PreDefined ON(t.ColumnA = PreDefined.AValue)
运行这个会让我JMX运行我猜,所以我可以看到他在9199上运行:
java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9199 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar bin/felix.jar
此外,我可以测试该端口在网络上是否可见:
现在,当我尝试在我的机器中打开VisualVM中的连接(也可以ping jmx服务器)时,会发生这种情况:
我一定是如此愚蠢,以至于这个世界上的每个人都能把这个东西放在我身边。该死...
编辑:我安装了wireshark来了解引擎盖下发生了什么,所以我看到了这一点。一旦我在VisualVM中添加远程IP,wireshark就会开始检测这种重复活动:
但是,如果我尝试添加新的JMX连接并要求他连接,则wireshark甚至不会抓取该连接尝试的单个数据包。
在我看来,VisualVM甚至没有尝试连接,尽管给出了错误消息"无法连接" ... !!到底是怎么回事?
答案 0 :(得分:6)
使用以下选项启动您的服务:
-Djava.rmi.server.hostname=193.163.XXX.XXX
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9199
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
然后你可以使用jvisualvm或jconsole只使用" 193.163.XXX.XXX:9199"地址。
答案 1 :(得分:1)
按照以下步骤操作
1)转到远程机器打开X11转发,
2)在窗口中安装XMING
3)在远程机器中启动可视VM,GUI将进入你的windows xming
4)而不是IP使用localhost并使用相同的端口号。
如果上述步骤不起作用,则意味着配置有问题
如果上面的步骤工作正常,那么去iptables并确保端口9199对外部世界开放。
并使用java -Djava.rmi.server.hostname=YOUR_IP
有关详细信息,请参阅此link
答案 2 :(得分:0)
请使用以下JVM选项:
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=<PORT> -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<IP>
在VisualVM中使用以下内容进行连接:
service:jmx:rmi:///jndi/rmi:/<IP>:<PORT>/jmxrmi
希望这会有所帮助。