Message 오브젝트는 응용프로그램이 전송하거나 수신하는 메시지를 표시합니다. IMessage는 IMapMessage와 같은 메시지 클래스의 수퍼클래스입니다.
IBM.XMS.IPropertyContext | +----IBM.XMS.IMessage
Message 오브젝트의 JMS 메시지 헤더 필드 목록은 XMS 메시지의 헤더 필드를 참조하십시오. Message 오브젝트의 JMS 정의 등록 정보 목록은 메시지의 JMS 정의 등록 정보를 참조하십시오. Message 오브젝트의 IBM 정의 등록 정보 목록은 메시지의 IBM 정의 등록 정보를 참조하십시오.
메시지는 가비지 콜렉터에 의해 삭제됩니다. 메시지가 삭제되면 해당 메시지가 사용하고 있던 자원이 해제됩니다.
.NET 등록 정보 | 설명 |
---|---|
JMSCorrelationID | 메시지의 상관 ID를 가져와서 String 오브젝트로 설정합니다. |
JMSDeliveryMode | 메시지 전달 모드를 가져오고 설정합니다. |
JMSDestination | 메시지 목적지를 가져오고 설정합니다. |
JMSExpiration | 메시지의 만기 시간을 가져오고 설정합니다. |
JMSMessageID | 메시지의 메시지 ID를 가져와서 메시지 ID를 캡슐화하는 String 오브젝트로 설정합니다. |
JMSPriority | 메시지 우선순위를 가져오고 설정합니다. |
JMSRedelivered | 메시지 재전달 여부를 나타내는 표시를 가져와서 메시지를 재전달할지 여부를 나타냅니다. |
JMSReplyTo | 응답 메시지가 전송될 목적지를 가져오고 설정합니다. |
JMSTimestamp | 메시지가 전송된 시간을 가져오고 설정합니다. |
JMSType | 메시지 유형을 가져오고 설정합니다. |
PropertyNames | 메시지의 이름 등록 정보 목록을 가져옵니다. |
DeliveryMode JMSDeliveryMode { get; set; }
메시지 전달 모드로 다음 값 중 하나를 사용할 수 있습니다.
아직 전송하지 않은 새로 작성한 메시지의 전달 모드는 DeliveryMode.Persistent지만, 브로커에 대한 실시간 연결의 전달 모드는 DeliveryMode.NonPersistent입니다. 수신한 메시지의 경우, 수신 응용프로그램이 JMSDeliveryMode를 설정하여 전달 모드를 변경하지 않는 한 이 메소드는 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정된 전달 모드를 리턴합니다.
IDestination JMSDestination { get; set; }
목적지는 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정됩니다. JMSDestination의 값은 무시됩니다. 그러나 JMSDestination을 사용하여 수신한 메시지의 목적지를 변경할 수 있습니다.
아직 전송하지 않은 새로 작성한 메시지의 경우 전송 응용프로그램이 JMSDestination을 설정하여 목적지를 설정하지 않는 한 이 메소드는 널 Destination 오브젝트를 리턴합니다. 수신한 메시지의 경우, 수신 응용프로그램이 JMSDestination을 설정하여 목적지를 변경하지 않는 한 이 메소드는 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정된 목적지에 대해 Destination 목적지를 리턴합니다.
Int64 JMSExpiration { get; set; }
만기 시간은 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정됩니다. 만기 시간 값은 전송 응용프로그램이 지정한 TTL(Time to Live)을 메시지 전송 시간에 더한 값으로, 1970년 1월 1일 00:00:00 GMT 이후부터 밀리초 단위로 표시됩니다.
아직 전송하지 않은 새로 작성한 메시지의 경우 전송 응용프로그램이 JMSDestination을 설정하여 다른 만기 시간을 설정하지 않는 한 만기 시간은 0입니다. 수신한 메시지의 경우, 수신 응용프로그램이 JMSExpiration을 설정하여 만기 시간을 변경하지 않는 한 이 메소드는 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정된 만기 시간을 리턴합니다.
TTL(Time to Live)이 0일 경우 IMessageProducer.send() 호출은 만기 시간을 0으로 설정하여 메시지가 만기되지 않음을 나타냅니다.
XMS 만기된 메시지를 버리고 이를 응용프로그램에 전달하지 않습니다.
String JMSMessageID { get; set; }
메시지의 메시지 ID를 가져와서 메시지 ID를 캡슐화하는 String 오브젝트로 설정합니다.
메시지 ID는 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정됩니다. 수신한 메시지의 경우, 수신 응용프로그램이 JMSMessageID를 설정하여 메시지 ID를 변경하지 않는 한 이 메소드는 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정된 메시지 ID를 리턴합니다.
메시지에 메시지 ID가 없을 경우 이 메소드는 널을 리턴합니다.
Int32 JMSPriority { get; set; }
우선순위는 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정됩니다. 값은 0(가장 낮은 우선순위) - 9(가장 높은 우선순위) 범위에 있는 정수입니다.
아직 전송하지 않은 새로 작성한 메시지의 경우 전송 응용프로그램이 JMSPriority를 설정하여 다른 우선순위를 설정하지 않는 한 우선순위는 4입니다. 수신한 메시지의 경우, 수신 응용프로그램이 JMSPriority를 설정하여 우선순위를 변경하지 않는 한 이 메소드는 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정된 우선순위를 리턴합니다.
Boolean JMSRedelivered { get; set; }
메시지 재전달 여부를 나타내는 표시를 가져와서 메시지를 재전달할지 여부를 나타냅니다. 이 표시는 메시지를 수신할 때 IMessageConsumer.receive() 호출에 의해 설정됩니다.
이 등록 정보는 다음 값 중 하나를 가질 수 있습니다.
브로커에 대한 실시간 연결의 경우 이 값은 항상 False입니다.
메시지가 전송되기 전에 JMSRedelivered에 의해 설정된 재전달 표시는 메시지를 전송할 경우 IMessageProducer.send() 호출에 의해 무시되며, 메시지를 수신할 경우 IMessageConsumer.receive() 호출에 의해 무시되어 대체됩니다. 그러나 useJMSRedelivered를 사용하여 수신한 메시지의 표시를 변경할 수 있습니다.
Int64 JMSTimestamp { get; set; }
시간 소인은 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정되며, 1970년 1월 1일 00:00:00 GMT 이후부터 밀리초 단위로 표시됩니다.
아직 전송하지 않은 새로 작성한 메시지의 경우 전송 응용프로그램이 JMSTimestamp를 설정하여 다른 시간 소인을 설정하지 않는 한 시간 소인은 0입니다. 수신한 메시지의 경우, 수신 응용프로그램이 JMSTimestamp를 설정하여 시간 소인을 변경하지 않는 한 이 메소드는 메시지를 전송할 때 IMessageProducer.send() 호출에 의해 설정된 시간 소인을 리턴합니다.
메소드 | 설명 |
---|---|
Acknowledge | 이 메시지를 비롯하여 세션이 이전에 수신한 메시지 중 수신확인되지 모든 메시지를 수신확인합니다. |
ClearBody | 메시지 본문을 지웁니다. |
ClearProperties | 메시지 등록 정보를 지웁니다. |
PropertyExists | 지정된 이름의 등록 정보가 메시지에 있는지 검사합니다. |
void Acknowledge();
이 메시지를 비롯하여 세션이 이전에 수신한 메시지 중 수신확인되지 모든 메시지를 수신확인합니다.
세션의 수신확인 모드가 AcknowledgeMode.ClientAcknowledge일 경우 응용프로그램은 이 메소드를 호출할 수 있습니다. 세션이 다른 수신확인 모드에 있거나 트랜잭트된 세션일 경우 이 메소드에 대한 호출이 무시됩니다.
수신만 하고 수신확인되지 않은 메시지는 재전달할 수 있습니다.
메시지 수신확인에 대한 자세한 정보는 세션의 메시지 수신확인을 참조하십시오.
void ClearBody();
메시지 본문을 지웁니다. 헤더 필드와 메시지 등록 정보는 지워지지 않습니다.
응용프로그램이 메시지 본문을 지울 경우 이 본문의 상태는 새로 작성한 메시지의 빈 본문과 같은 상태입니다. 새로 작성한 메시지의 빈 본문의 상태는 메시지 본문의 유형에 따라 다릅니다. 자세한 정보는 XMS 메시지 본문을 참조하십시오.
응용프로그램은 본문 상태에 관계없이 언제든지 메시지 본문을 지울 수 있습니다. 메시지 본문이 읽기 전용일 경우 응용프로그램이 본문에 기록할 수 있는 유일한 방법은 먼저 본문을 지우는 것입니다.