2011-01-24 1 views
3

두 개의 JMS 메시지를 동일한 대상에 순차적으로 추가합니다. 이 두 메시지는 내가 추가 한 순서와 동일한 순서로 수신되거나 역순으로 정렬 될 기회가 있습니다. 즉 메시지가 대상에서 처음 수신 된 메시지가 먼저 검색됩니다.JMS 대기열 메시지 수신 순서

producer.send(Msg1); 
producer.send(Msg2); 

Msg1Msg2 모든 경우에 순차적으로 추가 될 것이다 (네트워크 장애와 같은 지연 등.)

I는 목적지에 부가입니까?

답변

5

메시지 순서는 보장되지 않으며 사양에 따라 필수 사항이 아니며 Total JMS Message ordering에 이유에 대한 설명이 나와 있습니다. 스택   오버 플로우 게시 How to handle order of messages in JMS?도 참조하십시오. 또한

Although clients loosely view the messages they produce within a session 
as forming a serial stream of sent messages, the total ordering of this stream 
is not significant. The only ordering that is visible to receiving clients is 
the order of messages a session sends to a particular destination. 
Several things can affect this order like message priority, 
persistent/non persistent etc. 

그래서 귀하의 질문에 메시지를 대답

들이 위의 정보와 함께 전송 된 동일한 순서로 수신 될 JMS2 사양

JMS defines that messages sent by a session to a destination must be received 
in the order in which they were sent. This defines a partial ordering 
constraint on a session’s input message stream. 

JMS does not define order of message receipt across destinations or across 
a destination’s messages sent from multiple sessions. This aspect of a 
session’s input message stream order is timing-dependent. It is not under  
application control. 

당으로

2

. 그러나 메시지가 서버에 전달되는 순서는 메시지 우선 순위, 영구/비 지속성 등과 같은 제한 사항에 의해 제한됩니다.