Sun Java System Message Queue 3.7 UR1 기술 개요

시스템에서의 메시지 경로

지금까지 설명한 자료를 요약하여 이 절에서는 Message Queue 서비스를 사용하여 제작자에서 소비자로 메시지를 전달하는 방법에 대해 설명합니다. 완벽한 이해를 위해서는 더 자세한 정보가 필요합니다. 이러한 전달 단계에서 시스템에 의해 처리된 메시지는 두 가지 범주로 구분됩니다.

메시지 전달은 그림 2–7에 설명되어 있습니다.

그림 2–7 메시지 전달 단계

안정적으로 전달되는 지속성 메시지의 메시지 전달 프로세스 단계를 보여 주는 다이어그램. 그림은 텍스트에 설명되어 있습니다.

안정적으로 전달되는 지속성 메시지의 메시지 전달 단계는 다음과 같습니다.

메시지 생성

1. 클라이언트 런타임이 연결을 통해 메시지 제작자에서 브로커로 메시지를 전달합니다.

메시지 처리 및 경로 지정

2. 브로커가 연결을 통해 메시지를 읽고 적절한 대상에 저장합니다.

3. 브로커가 (지속성) 메시지를 데이터 저장소에 저장합니다.

4. 브로커가 메시지 제작자의 클라이언트 런타임에게 메시지 수신 확인을 보냅니다.

5. 브로커가 메시지 경로 지정을 결정합니다.

6. 브로커가 대상의 메시지를 해당 연결에 기록하여 소비자에 대한 고유 식별자 태그를 붙입니다.

메시지 소비

7. 메시지 소비자의 클라이언트 런타임이 연결에서 메시지 소비자로 메시지를 전달합니다.

8. 메시지 소비자의 클라이언트 런타임이 메시지 소비에 대한 확인을 브로커로 보냅니다.

메시지 수명 끝

9. 브로커가 클라이언트 확인을 처리하고 모든 확인이 수신되면 (지속성) 메시지를 삭제합니다.

10. 브로커가 소비자의 클라이언트 런타임에서 클라이언트 확인이 처리되었는지 확인합니다.

관리자가 대상에서 메시지를 삭제한 경우 또는 관리자가 영구 가입을 제거하거나 다시 정의한 경우, 메시지가 소비되기 전에 브로커가 이를 삭제할 수 있으므로 주제 대상의 메시지가 전달되지 않고 제거되는 상황이 벌어집니다. 이때 브로커가 메시지를 삭제하지 않고 사용 불능 메시지 대기열이라는 특수 대상에 메시지를 저장하도록 할 수도 있습니다. 메시지는 만료되는 경우, 메모리 제한으로 인해 제거되거나 클라이언트에서 예외가 발생하여 전달에 실패하면 사용 불능 메시지 대기열에 저장됩니다. 사용 불능 메시지 대기열에 메시지를 저장하여 시스템 문제를 해결하고 특정 상황에서 메시지를 복구할 수 있습니다.