【问题标题】:Tomcat 5.5 Monitoring with JDK 1.4 on WindowsTomcat 5.5 在 Windows 上使用 JDK 1.4 进行监控
【发布时间】:2010-08-11 20:06:01
【问题描述】:

根据此文档http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html#Enabling_JMX_Remote,应该可以远程监控在 JDK 1.4 上运行的 Tomcat 5.5 服务器,但是在搜索整个网络并尝试多个操作系统之后,我仍然没有比第一天更进一步。 到目前为止,我的结果是。使用标准设置 Tomcat

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=%my.jmx.port% 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=localhost

在 JDK 1.5 及更高版本上可以正常工作。 调试到 Tomcat 可以让我访问 MBeanServer,但我无法从外部连接到它。根据维基百科http://en.wikipedia.org/wiki/Java_Management_Extensions的信息 我只需要一个工作连接器,但我不知道如何让它工作。

尝试根据

设置HTTP Adapter
<Connector port="${AJP.PORT}" 
            handler.list="mx" 
            mx.enabled="true" 
            mx.httpHost="${JMX.HOST}"
            mx.httpPort="${JMX.PORT}"
            protocol="AJP/1.3" />

完全没有效果。当我调试它几乎似乎属性 handler.list 和 mx.* 只是被忽略了。我知道我应该只使用 JDK 1.5,然后我的担忧就消失了,但是我们有大量的 JDK 1.4 旧版安装基础,如果我们可以使用 JMX 监控,那就太好了。 最终我想使用 JConsole 或 JVisualVM 连接到 Tomcat,据我所知,连接 URL 看起来像

service:jmx:rmi:///jndi/rmi://localhost:8888/jmxrmi

8888 是我的 JMX 端口。 如果有人对如何深入问题的根源有一些建议或想法,那将非常有帮助。

【问题讨论】:

  • 根据download-llnw.oracle.com/javase/1.5.0/docs/guide/management/…,我什至不需要 -Djava.rmi.server.hostname=localhost 选项。它应该工作。但这适用于 Java 1.5 而不是 1.4,所以仍然感谢您的帮助
  • 你有在某些 *nix 机器上运行的 tomcat 吗?
  • 是的 vinothkr tomcat 在 *nix 上运行

标签: java tomcat jmx jdk1.4


【解决方案1】:

自 1.5 (JDK5) 起,JMX 支持已添加到 Java。要在 JDK 1.4 中使用它,必须下载并安装一个扩展 http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/download.jsp 。我没用过,但这可能是一个起点(来自http://java.sun.com/developer/technicalArticles/J2SE/jmx.html

JMX 技术实现

Java 2 平台标准版 5.0 (J2SE 5.0) 支持 JMX 1.2 和 JMX Remote API 1.0,后者现在是官方的 JMX 参考实现 (RI)。对于运行 J2SE 1.4 的开发人员,还可以从 Sun Microsystems 获得 JMX RI,并且可以免费下载。

要从外部连接,请尝试删除线

-Djava.rmi.server.hostname=localhost

如果您使用的是 Linux,请像 @vinothkr 所说的那样解决 JMX 远程连接上的 localhost 问题(文件 /etc/hosts,将 127.0.0.1 替换为服务器主机名所在行上的服务器 IP)。对于 Windows,我认为同样的事情也适用。

关于连接器,它是您阅读的文档中 jmx 远程端口上的连接器。您在协议 AJP/1.3 上的 server.xml 上设置的连接器不相关。它涉及 Apache HTTPd(或其他 Web 服务器/负载均衡器)和 Tomcat 之间的通信。

【讨论】:

  • 接下来几天让我看看它们的一些优点。谢谢
【解决方案2】:

如果您能够连接到在 Windows 机器上运行的 JVM。那么问题就是你的hosts.conf

尝试 hostname -i 如果它报告 127.0.0.1 则有问题

查看此常见问题解答第 5 条。 http://download.oracle.com/javase/1.5.0/docs/guide/management/faq.html

由于 JMX 使用端口重定向。这会导致问题

【讨论】:

    【解决方案3】:

    你有定义远程服务器吗?

    -Djava.rmi.server.hostname=localhost"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多