Клиент администрирования JMX для уведомлений о потоке - PullRequest
0 голосов
/ 17 февраля 2020

Я создал реализацию клиента администратора для уведомлений для зависшей темы. Я успешно подключился к серверу через Adminclient.

adminClient = AdminClientFactory.createAdminClient(connectProps);

Когда я использую запрос ниже для получения 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.

1 Ответ

2 голосов
/ 17 февраля 2020

Сервер MBean создает события зависших потоков TYPE_THREAD_MONITOR_THREAD_HUNG и TYPE_THREAD_MONITOR_THREAD_CLEAR. Измените запрос MBean на "WebSphere:type=Server,*", а затем добавьте прослушиватель уведомлений для каждого сервера, для которого клиент будет обрабатывать события зависших потоков. Теперь клиент должен быть включен для обработки уведомлений о зависших событиях потока.

...