我有 websphere application server v 7 over windows server,我想生成线程转储,因为我有线程挂起,但是当我尝试使用 wsadmin 获取 java 核心时出现错误,所以我想生成 java 核心文件,如 linux 使用 kill -3 。
Windows服务器中有这样的东西吗?
我有 websphere application server v 7 over windows server,我想生成线程转储,因为我有线程挂起,但是当我尝试使用 wsadmin 获取 java 核心时出现错误,所以我想生成 java 核心文件,如 linux 使用 kill -3 。
Windows服务器中有这样的东西吗?
就像 ObiWanKenobi 提到的那样,您最好的选择可能是通过部署管理器管理控制台。从 IBM 的支持站点:
将 com.ibm.websphere.threadmonitor.dump.java 属性设置为 true:
应用服务器:
名称:com.ibm.websphere.threadmonitor.dump.java
值:真
节点代理:
名称:com.ibm.websphere.threadmonitor.dump.java
值:真
简而言之,没有好的答案。
最接近的方法是使用 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内置了这个功能,但是我已经很久没有尝试在这一点上具有权威性了。)
当 SystemOut.log 中存在“挂起”线程消息时,您可以让 JVM 执行线程转储:在 JVM 的 Administration > Custom Properties 下添加 com.ibm.websphere.threadmonitor.dump.java=true。