21

我将 tomcat 6.0.18 作为 Windows 服务运行。在服务小程序中,jvm 是默认配置的,即它使用 JRE 的 jvm.dll。

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

4

6 回答 6

30

有一个很好的 GUI 来编辑选项,无需在注册表中乱七八糟。

打开 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。

于 2009-02-17T01:38:46.303 回答
3

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

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

我会尝试进入您在 HKLM/Software/Apache Software Foundation/Procrun 2.0//Parameters/Java 的注册表并直接编辑“选项”多字符串值。

于 2009-02-02T16:37:49.677 回答
2

我发布它主要是为了给自己记录这些信息,我还没有验证它——但这应该也可以:

http://mysqlandsqlserver.blogspot.com/2010/02/jconsolejmap-and-tomcat-as-windows.html

于 2010-04-16T10:01:24.677 回答
2

仍然有一种相当简单的方法可以使用我在这里发现的本地模式将 JConsole 连接到作为 Windows 服务启动的 Java 进程。

基本上它说,为了连接到作为 Windows 服务启动的 Java 进程,您需要将 JConsole 作为 Windows 服务启动(您可以使用 Windows 本机 api 或使用任何包装器,如yajsw。)

顺便说一句,这将使您免于重新启动对我来说至关重要的 Java 进程。

于 2015-10-27T15:37:58.273 回答
1

如果 Tomcat 作为 Windows 服务运行,并且您想在本地附加到 JVM,则需要将 VisualVM 或 JConsole 作为系统帐户运行。您可以使用Sysinternals PsExec.exe来完成此操作。

psexec.exe -i -s c:\visualvm\bin\visualvm.exe
于 2009-05-01T16:10:46.083 回答
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

于 2012-03-22T04:43:18.917 回答