Транзакционное чтение JMS

Как я могу добиться транзакционного чтения (т.е. чтения сообщения JMS как части транзакции с использованием MessageConsumer.receiveNoWait(), и если транзакция завершится неудачно, сообщение должно оставаться в очереди)?

Я думаю об использовании соединений JmsXA connectionFactory и XA.

Спасибо


person Sergiu    schedule 19.04.2012    source источник


Ответы (1)


Повторная доставка сообщения — это отправка сообщения обратно в очередь, которая завершается сбоем во время обработки.

Это возможно с использованием транзакционного чтения, которое можно определить по-разному, например. - Transacted Sessions - Bean, управляемый сообщениями (может быть на уровне контейнера и на основе конфигурации)

Подтверждение сообщения происходит на уровне сеанса, если вы зафиксируете сеанс, он сохранит прочитанное, а при откате сообщение/группа неподтвержденных сообщений будет возвращено в очередь (@ Broker). Подробности см. на http://www.javaworld.com/javaworld/jw-02-2002/jw-0315-jms.html.

person neo    schedule 20.04.2012