2013-08-27 3 views
2

현재 JMX 기반의 모니터링 기능을 구축 중입니다. 모니터링 할 시스템은 이미 게시/구독 방식으로 일부 KPI를 노출합니다. 즉, 사용자 지정 코딩 된 모니터링 클라이언트가 시스템에 연결하고 해당 KPI를 활성화 및 구독 할 수 있으며 시스템은 새로운 KPI 값을 사용할 수있게되는 즉시 클라이언트에 알립니다. . 이러한 KPI의 평가가 계산 상으로 비쌀 수 있으므로 적어도 구독 클라이언트에있는 KPI 만 평가됩니다.JMX 연결 및 세션 처리

이제 JMX 및 JMX 알림을 기반으로하는 모니터링 서버를 제공하는 시스템을 확장하여 모든 JMX 클라이언트가 해당 KPI를 활성화, 구독 및 수신 할 수 있도록해야합니다.

내가 직면 한 문제는 연결 한 각 클라이언트가 서버의 상태를 변경 (즉, KPI를 활성화하고 일부 수신기를 등록 함)합니다. 클라이언트의 세션이 완료되거나 연결이 끊어지면 즉시 정리해야합니다. 장 13.1

에 관한 세션 JMX specification 상태 :

세션은 클라이언트에서 상태를 가지고, 특히 그 청취자가 (208 페이지의 " 원격 리스너를 추가"13.4 절 참조). 세션에는 반드시 서버에 상태가있는 것은 아니며이 사양에 정의 된 두 커넥터의 경우 세션에는 없습니다.

일부 세션 상태를 유지하도록 허용하는 JMXConnectorServer 구현을 아는 사람이 있습니까? 이러한 서버를 구현하는 데 필요한 모든 코드 샘플, 자습서 또는 지침도 매우 높이 평가할 수 있습니다.

+0

아마도 아직 관련이 없지만 구독을 시간 초과 할 수 있습니까? 일종의 최소 새로 고침 시간을 가정하고 구독을 처리하고 너무 오래 된 스레드를 제거하는 스레드를 포크하십시오. – Gray

답변

0

아마도 clientId와 같은 것을 가질 수 있습니다. 리스너를 등록 할 때 clientId를 인수로 사용하므로 서버에 클라이언트 측 정보가 있습니다.

클라이언트 측이 부드럽게 종료되면 JMX 서버에 메소드를 호출하여 리스너를 지우거나 클라이언트 측에서 연결이 끊어지고 부드럽게 닫히지 않으면 클라이언트에서 모니터링 스레드를 가질 수 있습니다 JMX 서버는 수신 및 종료중인 사용자를 등록하고 필요한 경우이를 JMX 서버에 알립니다.