2017-04-21 4 views
0

backgroud의 약간의 비트 : 우리의 일괄 프레임 워크 중 하나의 성능을 향상시켜야합니다. 거기에서 배치 입력은 JMS 대기열로 보내집니다. 또한 큐 엔드 포인트에서 메시지를 소비하는 MDB가 있습니다. 이제는 많은 메시지가있는 경우 이전 메시지 처리시 모든 메시지가 보류되므로 메시지를 사용할 수있는 MDB 인스턴스가 없다고 생각됩니다. 이를 개선하기 위해 MDB 비즈니스 논리에서 스레드 풀을 구현하여 MDB가 메시지를 받고 스레드로 전달하면 다른 메시지를 사용할 수 있도록 할 생각입니다.WAS의 JMS 대기열 모니터링

이제 구현하기 전에 메시지가 실제로 대기열에서 대기 중인지 아닌지 확인하기 위해 JMS 대기열을 모니터링하고 싶습니다. 따라서이 모니터링이 일부 WAS 관리 콘솔 또는 일부 JMX 애플리케이션을 통해 수행 될 수 있는지 알아야합니다. 나의 주요 목적은 대기열에있는 각 jms 메시지의 대기 시간을 확인하는 것입니다.

+0

일부 복잡한 논리를 구현하기 전에 메시지 순서가 중요한지 여부를 알아야합니다. 영구적/비 지속성 메시지를 사용할 수 있습니다. "엔드 포인트 당 최대 동시 MDB 호출"의 현재 설정을 점검하고, PMI를 통해 얼마나 많은 동시 MDB가 실행되고 onMessage 평균 응답 시간이되는지 확인하십시오. 또한 "최대 배치 크기"설정을 사용하여 영향을 미치는지 확인할 수 있습니다. – Gas

+0

@Gas 죄송합니다. 나는 약어가 좋지 않습니다. 이 PMI는 무엇입니까? 그리고 예, 대기열에있는 메시지가 임의의 순서로있을 수있는 스레드 풀에 의해 플랫 파일에 저장 되었기 때문에 순서가 중요하지 않습니다. –

+0

PMI는 성능 모니터링 인프라로서 다양한 기능을 모니터링 할 수있는 WAS 기능이 내장되어 있습니다. WebSphere Knowledge Center에서 자세한 내용을 찾으십시오. – Gas

답변

0

먼저 Q를 소비 할 프로세스 (MDB 인스턴스)의 수를 병렬로 설정할 수 있습니다. 기본값은 10입니다 (클러스터의 구성원마다 ..). Resources -> JMS -> activation specifications는, ". 메시지를 동시에 전달되는 엔드 포인트의 최대 수"`질문을 모니터링하고 일부 부하를 생성에 관해서는`

`로 정의 설정 "Maximum concurrent MDB invocations per endpoint", 당신은 모양을 가질 수 있습니다 콘솔로
당신은 Q의 메시지에 의해 시간의 지출을 측정 할 경우 JMSToolBox에서 "대상 정보"대화 상자에서 JMSToolBox on sourceforge

에서, 당신은 또한

또한 Q에 동시 소비자의 수를 볼 수 있습니다 , 현재 시간과 JMSTimestamp JMS sta의 차이를 계산하기 만하면됩니다. MDB에 의해 처리되는 메시지의 ndard 속성 onMessage() 메서드