헤더는 모든 JMS 메시지에서 필수입니다. 헤더에는 10개의 사전 정의된 필드가 포함되어 있습니다. 이러한 필드에 대한 목록과 설명은 표 2–3을 참조하십시오.
표 2–3 JMS 정의 메시지 헤더
이 표에서 알 수 있듯이 메시지 헤더 필드는메시지 식별, 메시지 라우팅 구성, 메시지 처리 정보 제공과 같은 다양한 목적으로 사용됩니다.
가장 중요한 필드 중 하나인 JMSDeliveryMode가 메시지 전달의 안정성을 결정합니다. 이 필드는 메시지가 지속성 메시지인지 여부를 나타냅니다.
지속성 메시지정확히 한 번의 전달 및 성공적인 소비이 보장됩니다. 지속성 메시지는 메시지 서비스 오류 발생 시에도 손실되지 않습니다.
비지속성 메시지는 최대 한 차례 전달이 보장됩니다. 비지속성 메시지는 메시지 서비스 오류 발생 시 손실됩니다.
일부 메시지 헤더 필드는 공급자(브로커 또는 클라이언트 런타임) 또는 클라이언트에 의해 설정됩니다. 메시지 제작자는 특정 메시징 동작을 가져올 헤더 값을 구성해야 합니다. 메시지 소비자는 헤더 값을 읽고 메시지 경로가 지정된 방법과 향후의 메시지 처리에 필요한 내용을 이해해야 합니다.
헤더 필드(JMSDeliveryMode, JMSExpiration 및 JMSPriority)는 세 가지 수준에서 설정할 수 있습니다.
연결 팩토리에서 파생되는 모든 연결로부터 생긴 메시지
생성된 각 메시지
특정 메시지 제작자가 만든 모든 메시지
이러한 필드가 여러 수준으로 설정되는 경우, 연결 팩토리에 설정된 값이 개별 메시지에 설정된 값을 대체하며 주어진 메시지에 설정된 값이 메시지 제작자에 설정된 값을 대체합니다.
메시지 헤더 필드의 이름은 언어 구현에 따라 다릅니다. 자세한 내용은 Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients 또는 Sun Java System Message Queue 3.7 UR1 Developer’s Guide for C Clients를 참조하십시오.