MaxConcurrentListeners и удаленные транзакционные чтения из MSMQ
Может ли быть так, что MaxConcurrentListereners на DistributedTxMessageListenerContainer не очень полезны? У меня сложилось впечатление, что только один поток одновременно может обработать сообщение из очереди. Возможно, это логично, поскольку сообщение будет удалено из очереди только после успешного завершения транзакции. Или я здесь не прав?
1 ответ
Да, только один поток может получить конкретное сообщение из очереди.
Однако несколько потоков могут одновременно получать сообщения из очереди.
Когда сообщение транзакционно принимается из очереди, оно становится невидимым для всех других потоков, пока транзакция не прервет фиксацию.
Если оно прерывается, то сообщение снова появляется в очереди (снова становится видимым); если он фиксируется, то сообщение физически удаляется из очереди.
ура
Джон Брейквелл