【问题标题】:Is it possible to check what is running inside a .war in Tomcat?是否可以检查 Tomcat 中的 .war 中运行的内容?
【发布时间】:2015-09-18 10:03:21
【问题描述】:

我有一个Talend 进程,部署在Tomcat 应用服务器的.war 文件中。 .war 里面有几个作业,使用 get 请求调用,很像“http://server:port/TalendProject/method=runJob”。

没有Talend 的商业许可(目前使用 Open Studio)我无法控制作业在执行过程中是否失败。

我知道我可以检查日志但不知道我正在使用的系统,我无法确定作业是失败还是仍在运行(例如在异常之后)。

我的问题是,是否有任何方法可以监控 Tomcat 中正在运行的作业,也就是说,是否有任何方法可以显示正在运行的进程。

我的猜测,但我不确定是没有办法,因为Talend Job 正在运行由Talend .war 封装,所以我唯一会看到的是java调用这个@987654331 @ 并且下面的所有内容都将被隐藏。

【问题讨论】:

    标签: java tomcat war talend


    【解决方案1】:

    我对 Talend 一无所知,但我认为您可以使用 JConsole 或更好的 VisualVm 通过 JMX 监控您的 Tomcat 服务器代理人。为了监控任何 Java 应用程序(如 Tomcat),如果 Tomcat 在 localhost 中运行,您必须使用 -Dcom.sun.management.jmxremote 调用它。

    如果Tomcat在另一台主机上运行,​​则至少需要配置端口JMX属性-Dcom.sun.management.jmxremote.port=XXXX

    为了添加这些属性以运行 tomcat,您必须将位于 $TOMACT_HOME\bin\catalina.sh$TOMACT_HOME\bin\catalina.bat 文件中的 CATALINA_OPTS 变量更改。

    您有关于 Java JMX 代理监控的完整文档here

    通过这种方式,您可以监控线程、内存消耗、gc 活动、进行分析、线程转储……也许它可以帮助您理解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 2022-08-14
      • 1970-01-01
      • 2015-10-14
      相关资源
      最近更新 更多