websphere - 用于线程挂起通知的 JMX 管理客户端
问题描述
我为挂起线程的通知创建了一个管理客户端实现。我已通过 Adminclient 成功连接到服务器。
adminClient = AdminClientFactory.createAdminClient(connectProps);
当我使用下面的查询来获取 Node 的 MBean 时,我能够在服务器启动或停止时获取通知。
String query = "WebSphere:type=NodeAgent,node=" + nodeName + ",*";
但我只是在寻找与挂起线程相关的通知,您能否建议我应该使用什么 MBean。
我已经尝试在下面获取 MBean。
String queryString = "WebSphere:type=ThreadPool,process="+nodeName+",name=WebContainer,*" ;
String queryString = "WebSphere:type=ThreadPool,process="+nodeName+",name=ThreadPool,*" ;
String queryString = "WebSphere:type=ThreadPool,process="+nodeName+",name=ORB.thread.pool,*" ;
但是我没有收到 JMX 通知,尽管我可以在 SysetemOut.log 中看到挂起线程错误存在。
adminClient.addNotificationListener(nodeAgent, this, null, null);
我在上面使用了将通知绑定到 MBean。
解决方案
服务器 MBean 产生挂起的线程事件 TYPE_THREAD_MONITOR_THREAD_HUNG 和 TYPE_THREAD_MONITOR_THREAD_CLEAR。将 MBean 查询修改为"WebSphere:type=Server,*"
,然后为客户端将为其处理挂起线程事件的每个服务器添加一个通知侦听器。现在应该启用客户端来处理挂起线程事件的通知。
推荐阅读
- php - “警告:mysqli::prepare(): Couldn't fetch mysqli”但是我没有这条线?
- regex - SAS 正则表达式字符串提取
- c# - 尝试使用 Win32_NetworkAdapterConfiguration 在 c# 中更改网络适配器的网络设置(DNS),但我看不到我做错了什么
- python - 将列附加到 Pandas 数据框
- python - Python maplotlib PNG 和 FPDF
- python - 为什么 Python 多处理不能在我的 PC 上运行?
- node.js - AWS NodeJS Lambda:将事件数据对象作为参数传递给需要模块
- c++ - 如何使用 ITK 将 PNG 转换为 PyTorch 的张量
- c# - 如何在检查了私有和公共配置文件的情况下将授权应用程序添加到 Windows 防火墙?
- r - 将 str_wrap() 与 expression() 结合使用以获得自定义标题以适合 ggplot2 中的绘图