我已经为挂起的通知创建了一个Admin Client实现。我已经通过Adminclient成功连接到服务器。
adminClient = AdminClientFactory.createAdminClient(connectProps);
当我使用下面的查询来获取MBean for Node时,我能够在服务器启动或停止时获得通知。
String query = "WebSphere:type=NodeAgent,node=" + nodeName + ",*";
但是我只在寻找与Hung Thread相关的通知,请问我可以建议我将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,*" ;
但是我没有在SysetemOut.log中看到JMX通知,但出现挂起线程错误。
adminClient.addNotificationListener(nodeAgent, this, null, null);
我上面已经使用过将通知绑定到MBean。
服务器MBean产生挂起线程事件TYPE_THREAD_MONITOR_THREAD_HUNG和TYPE_THREAD_MONITOR_THREAD_CLEAR。将MBean查询修改为"WebSphere:type=Server,*"
,然后为客户端将为其处理挂起的线程事件的每个服务器添加一个通知侦听器。现在应启用客户端以处理有关挂起线程事件的通知。