Sun Java System Message Queue 3.7 UR1 관리 설명서

메시지가 백로그됨

증상:

메시지가 누적되고 있는지 확인하려면 브로커의 메시지나 메시지 바이트 수가 시간에 따라 어떻게 변하는지 확인하고 구성된 제한과 비교합니다. 먼저 구성된 제한을 확인합니다.

imqcmd query bkr


주 –

imqcmd metrics bkr 하위 명령은 이 정보를 표시하지 않습니다.


그런 다음 각 대상에서 메시지 누적을 확인합니다.

imqcmd list dst

메시지가 대상이나 브로커 전체에 구성된 제한을 초과했는지 확인하려면 브로커 로그에서 다음 항목을 확인합니다.

[B2011]: Storing of JMS message from failed.

이 항목 다음에는 초과된 제한에 대해 설명하는 다른 항목이 표시됩니다.

가능한 원인:

가능한 원인: 주제 대상에 비활성 영구 가입이 있습니다.

영구 가입이 비활성 상태인 경우 해당 사용자가 활성화되어 메시지를 사용할 수 있을 때까지 대상에 메시지가 저장됩니다.

문제의 원인을 확인하는 방법: 각 주제 대상에서 영구 가입 상태를 확인합니다.

imqcmd list dur -d destName

문제를 해결하는 방법:

가능한 원인: 대기열에서 메시지를 사용할 수 있는 사용자 수가 너무 적습니다.

메시지를 전달할 수 있는 활성 사용자의 수가 너무 적은 경우 메시지가 누적될 때 대기열 대상이 백로그될 수 있습니다. 이런 상태는 다음과 같은 이유 중 하나 때문에 발생할 수 있습니다.

문제의 원인을 확인하는 방법: 사용자가 대기열의 메시지를 사용할 수 없는 원인을 확인하려면 대상에서 활성 사용자의 수를 확인합니다.

imqcmd metrics dst - n destName -t q -m con

문제를 해결하는 방법: 사용자가 사용할 수 없는 원인에 따라

가능한 원인: 메시지 사용자가 너무 느리게 처리하여 메시지 생성자를 따라가지 못합니다.

이 경우 주제 가입자나 대기열 수신자가 메시지를 사용하는 것이 생성자가 메시지를 보내는 것보다 느립니다. 이러한 불균형으로 인해 하나 이상의 대상이 메시지로 백로그됩니다.

문제의 원인을 확인하는 방법:메지지가 브로커에 유입 및 유출되는 속도를 확인합니다.

imqcmd metrics bkr -m rts

그런 다음 개별 대상 각각에 대한 흐름 속도를 확인합니다.

imqcmd metrics bkr -t destType -n destName - m rts

문제를 해결하는 방법:

가능한 원인: 클라이언트 확인 처리가 메시지 사용을 느리게 합니다.

다음과 같은 두 가지 요소가 클라이언트의 확인 처리에 영향을 미칩니다.

문제의 원인을 확인하는 방법:

문제를 해결하는 방법:

가능한 원인: 브로커가 메시지 생성 속도를 따라갈 수 없습니다.

이 경우 브로커가 메시지를 라우팅하여 사용자에게 전달하는 것보다 더 빨리 메시지가 브로커로 유입됩니다. 브로커의 지체는 다음 중 하나 또는 모두에 대한 제한 때문일 수 있습니다.

문제의 원인을 확인하는 방법: 이 문제를 일으키는 다른 원인은 없는지 확인합니다.

문제를 해결하는 방법:

가능한 원인: 클라이언트 코드에 결함이 있습니다. 사용자가 메시지를 확인하지 않습니다.

메시지는 메시지를 받은 모든 사용자가 확인할 때까지 대상에 보관됩니다. 따라서 클라이언트가 사용된 메시지를 확인하지 않는 경우 메시지는 삭제되지 않고 대상에 누적됩니다.

예를 들어, 클라이언트 코드에 다음 결함이 있을 수 있습니다.

문제의 원인을 확인하는 방법: 먼저 이 절에 나열된 모든 다른 가능한 원인을 확인하고다음 명령을 사용하여 대상을 나열합니다.

imqcmd list dst

UnAcked 헤더에 나열된 메시지 수가 대상의 메시지 수와 동일한지를 확인합니다. 이 헤더에 있는 메시지가 사용자에게 전송되었지만 확인되지 않았습니다. 이 수가 총 메시지 수와 같은 경우 브로커가 모든 메시지를 전송하고 확인을 대기 중인 것입니다.

문제를 해결하는 방법: 이 문제를 디버깅할 때 응용 프로그램 개발자에게 도움을 요청하십시오.