2011-01-24 2 views
3

Я добавляю два сообщения JMS в одном месте назначения последовательно. Будут ли получаться оба этих сообщения в том же порядке, в котором я их добавил, или есть шанс на обратное упорядочение, то есть когда-либо сообщение будет получено первым в пункте назначения, будет получено первым.Сообщение очереди JMS получает заказ

Я добавлении в качестве пункта назначения:

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

Msg1 и Msg2 будут добавлены последовательно во всех случаях (., Как сетевые сбои и задержки и т.д.)?

ответ

2

Согласно 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. 

Также

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. 

Так, чтобы ответить на ваш вопрос сообщения будут получены в том же порядке, как они были отправлены с указанной выше информации. Порядок, в котором сообщения доставляются на сервер, будет ограничен ограничениями, такими как приоритет сообщений, постоянный/непостоянный и т. Д.

Смежные вопросы