无法在Tomcat作为Windows服务运行时使用JConsole

21

我正在将Tomcat 6.0.18作为Windows服务运行。在服务应用程序中,JVM配置为默认,即使用JRE的jvm.dll。

我尝试使用JConsole监视此应用程序,但无法在本地连接到它。我添加了参数-Dcom.sun.management.jmxremote(在使用start.bat脚本启动Tomcat时有效)。但是JVM似乎没有识别该参数。

6个回答

30

有一个漂亮的图形用户界面可用于编辑选项,无需在注册表中操作。

打开C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\tomcat6.exe(或只需双击任务栏中的监视器图标)。 转到Java选项卡,将以下内容添加到参数列表中,并重新启动Tomcat。

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

然后您就可以使用JConsole或更新的VisualVM进行连接。


通过这个配置,我能够作为远程进程连接到 localhost:8086(无需输入用户名和密码)。 - Edd
请注意:tomcat6.exe配置面板现在被称为Tomcat7w.exe - Evandro Silva

3
以下是更改jvmoptions并与服务交互的指定方法:

这是更改jvmoptions并与服务交互的规定方式:

http://tomcat.apache.org/tomcat-5.5-doc/windows-service-howto.html

我建议您尝试进入注册表的HKLM/Software/Apache Software Foundation/Procrun 2.0//Parameters/Java,直接编辑"Options"多字符串值。

1
如果是64位系统,则路径为HKLM\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0<name>\Java。 - TJR

3
这里有一种比较简单的方法,可以使用本地模式将JConsole连接到作为Windows服务启动的Java进程,我在这里发现了这个方法。
基本上,它说为了连接到作为Windows服务启动的Java进程,你需要将JConsole作为Windows服务启动(你可以使用Windows本地API或任何包装器,如yajsw)。
顺便说一下,这将使您免于重启Java进程,这对我来说非常关键。

2

这在我的64位Windows笔记本电脑上运行良好。不需要安装任何额外的软件,这是一个额外的优点。 - hshib

2
如果Tomcat作为Windows服务运行,并且您想要本地连接到JVM,则需要使用System帐户运行VisualVM或JConsole。 您可以使用Sysinternals PsExec.exe来实现这一点。
psexec.exe -i -s c:\visualvm\bin\visualvm.exe

2
似乎没有起作用。D:\Packages\Java\jdk1.6.0_25\bin>psexec -i -s jvisualvm.exePsExec v1.98 - 远程执行进程 版权所有 (C) 2001-2010 Mark Russinovich Sysinternals - www.sysinternals.comjvisualvm.exe 在 MACHINENAME01 上以错误代码 -1073741819 退出。 - Chloe

1
请在catalina.bat文件的开头添加以下内容:

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote ^
    -Dcom.sun.management.jmxremote.port=8086 ^
    -Dcom.sun.management.jmxremote.ssl=false ^
    -Dcom.sun.management.jmxremote.authenticate=false

停止和重新启动Tomcat(显然)

运行jconsole.exe。如果你的Tomcat正在作为服务运行,则以管理员身份运行jconsole.exe。

选择远程进程并输入localhost:8086。


我在tomcat7目录下的setEnv文件中添加了这些参数,它完美地运作了。 - Harika Mamidi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接