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

메시지가 사용자에게 도달하지 않음

증상:

가능한 원인:

가능한 원인: 제한 동작으로 인해 메시지가 브로커에서 삭제됩니다.

대상 메모리의 메시지 수나 메시지 바이트 수가 구성된 제한에 도달하면 브로커는 메모리 자원을 절약하려고 합니다. 이러한 제한에 도달하면 브로커가 수행하는 구성 가능한 동작 중 다음 세 가지 동작으로 인해 메시지가 손실됩니다.

문제의 원인을 확인하는 방법: 사용 불능 메시지 대기열에 메시지가 포함되어 있음에서 설명한 대로 사용 불능 메시지 대기열을 확인합니다. 특히, "메시지 수 또는 메시지 크기가 대상 제한을 초과합니다."의 지침을 사용합니다.REMOVE_OLDEST 또는 REMOVE_LOW_PRIORITY 원인을 찾습니다.

문제를 해결하는 방법: 대상 제한을 늘립니다. 예를 들면 다음과 같습니다.

imqcmd update dst -n MyDest - o maxNumMsgs=1000

가능한 원인: 메시지 시간 초과 값이 만료됩니다.

브로커가 시간 초과 값이 만료된 메시지를 삭제합니다. 대상이 충분히 메시지로 백로그된 경우 수명 값이 너무 짧은 메시지는 삭제될 수 있습니다.

문제의 원인을 확인하는 방법:QBrowser 데모 응용 프로그램을 사용하여 사용 불능 메시지 대기열의 내용을 살펴보고 메시지 시간이 초과되었는지 확인합니다. QBrowser 데모의 플랫폼별 위치는 부록 A, 플랫폼별 Message QueueTM 데이터 위치를 참조하십시오. 또한 "예제 응용 프로그램 및 위치" 표를 참조하십시오.

다음은 Windows 플랫폼에서의 호출 예입니다.

cd \MessageQueue3\demo\applications\qbrowser java QBrowser

QBrowser 기본 창이 나타나면 대기열 이름 mq.sys.dmq를 선택한 다음 Browse를 누릅니다. 다음과 같은 목록이 나타납니다.

mq.sys.dmq에 대한 메시지를 표시하는 QBrowser. 각 메시지에는 번호, 타임스탬프, 유형, 모드 및 우선 순위가 있습니다.

메시지를 두 번 누르면 해당 메시지에 대한 세부 정보가 표시됩니다.

메시지 세부 정보 창. 위쪽 창에는 메시지가 표시되고 중간 창에는 해당 등록 정보가 표시되며 아래쪽 창에는 메시지가 포함되어 있습니다.

메시지에 대한 JMS_SUN_DMQ_UNDELIVERED_REASON 등록 정보 값이 EXPIRED인지 확인합니다.

문제를 해결하는 방법: 응용 프로그램 개발자에게 문의하여 수명 값을 늘립니다.

가능한 원인: 클럭이 동기화되지 않습니다.

클럭이 동기화되어 있지 않은 경우 브로커의 메시지 수명 계산 오류로 인해 메시지가 만료 시간을 초과하여 삭제될 수 있습니다.

문제의 원인을 확인하는 방법: 브로커 로그 파일에서 B2102, B2103, B2104 메시지 중 하나가 있는지 확인합니다. 이러한 모든 메시지는 가능한 클럭 스큐가 감지되었음을 보고합니다.

문제를 해결하는 방법: 시스템 자원 준비에 설명된 대로 시간 동기화 프로그램이 실행 중인지 확인합니다.

가능한 원인: 사용자 클라이언트가 연결에서 메시지 전달을 시작하지 못했습니다.

클라이언트 코드가 연결을 설정하고 해당 연결에서 메시지 전달을 시작할 때까지 메시지를 전달할 수 없습니다.

문제의 원인을 확인하는 방법:클라이언트 코드가 연결을 설정하고 메시지 전달을 시작하는지 확인합니다.

문제를 해결하는 방법: 연결을 설정하고 메시지 전달을 시작하도록 클라이언트 코드를 다시 작성합니다.