0

我有 websphere application server v 7 over windows server,我想生成线程转储,因为我有线程挂起,但是当我尝试使用 wsadmin 获取 java 核心时出现错误,所以我想生成 java 核心文件,如 linux 使用 kill -3 。

Windows服务器中有这样的东西吗?

4

3 回答 3

1

就像 ObiWanKenobi 提到的那样,您最好的选择可能是通过部署管理器管理控制台。从 IBM 的支持站点:

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

应用服务器:

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

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

值:真

  1. 单击应用。
  2. 单击确定并保存配置更改。
  3. 重新启动应用程序服务器以使更改生效。

节点代理:

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

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

值:真

  1. 单击应用。
  2. 单击确定并保存配置更改。
  3. 重新启动节点代理以使更改生效。
于 2016-04-05T15:54:00.553 回答
0

简而言之,没有好的答案。

最接近的方法是使用 SendSignal 之类的东西。请参阅我可以向 Windows 上的应用程序发送 ctrl-C (SIGINT) 吗?问题以获取更多信息。不幸的是,SendSignal 不能在所有版本的 Windows 上可靠地工作(请参阅我的Send ctrl-break to java process on 64-bit Windows ala sendsignal on 32-bit question)。

如果您愿意编写一些自定义代码,您可以编写一个 Java 程序,该程序使用附加 API来加载调用Dump API的 Java 代理。(我怀疑IBM Support Assistant内置了这个功能,但是我已经很久没有尝试在这一点上具有权威性了。)

于 2015-09-04T19:04:00.790 回答
0

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

于 2015-10-22T17:58:03.023 回答