2015-09-04 64 views

回答

0

总之,没有很好的答案。

最接近的就是使用类似SendSignal的东西。有关更多信息,请参阅Can I send a ctrl-C (SIGINT) to an application on Windows?问题。不幸的是,SendSignal在所有版本的Windows上无法可靠运行(请参阅我的Send ctrl-break to java process on 64-bit Windows ala sendsignal on 32-bit问题)。

如果您愿意编写一些自定义代码,则可以编写一个Java程序,该程序使用attach API加载调用Dump API的Java代理。 (我怀疑IBM Support Assistant内置此功能,但自从我试图在这一点上做出权威以来,已经太长了。)

0

当存在“挂起”线程消息时,您可以让JVM执行线程转储在SystemOut.log中: 在JVM的管理>定制属性下添加com.ibm.websphere.threadmonitor.dump.java = true。

1

和ObiWanKenobi一样,您最好的选择可能是通过Deployment Manager管理控制台。从IBM的技术支持网站:

设置com.ibm.websphere.threadmonitor.dump.java属性为true:

应用服务器:

  1. 从管理控制台,单击服务器>应用程序服务器>服务器名称。
  2. 在服务器基础结构下,单击管理>自定义属性。
  3. 单击新建并添加以下属性:

名称:com.ibm.websphere.threadmonitor.dump.java

值:true

  • 点击应用。
  • 单击确定并保存配置更改。
  • 重新启动应用程序服务器以使更改生效。
  • 节点代理:

    1. 从管理控制台,单击系统管理>节点代理>节点代理。
    2. 在其他属性下,单击管理服务
    3. 在其他属性下,单击定制属性
    4. 单击新建并添加以下属性:

    名称:com.ibm.websphere.threadmonitor.dump。的java

    值:true

  • 单击应用。
  • 单击确定并保存配置更改。
  • 重新启动节点代理,以使更改生效。
  • 相关问题