Что происходит с сообщением, если транзакция JMS не зафиксирована и не отменена - PullRequest
2 голосов
/ 16 декабря 2010

Пожалуйста, помогите мне, я новичок в JMS.Что происходит с сообщением, если транзакция JMS не зафиксирована и не откатана?

Ответы [ 2 ]

1 голос
/ 17 декабря 2010

Точное поведение зависит от брокера.Я специализируюсь на WebSphere MQ, поэтому я объясню это в этих терминах.Если вы сообщите нам, какой тип брокера вы используете, возможно, кто-то, разбирающийся в этом конкретном брокере, ответит.

С WMQ ограничивающими факторами являются журнал транзакций и срок службы приложения.Если приложение умирает с незавершенной транзакцией, оно откатывается.Помимо этого, транзакция живет в журналах до тех пор, пока пространство журнала не будет исчерпано, и в этот момент транзакция будет откатываться, и приложение получает код причины, указывающий характер ошибки.Если нет других приложений, пишущих в журнал транзакций, транзакция может продолжаться бесконечно.Если QMgr занят, незафиксированные транзакции могут длиться всего несколько секунд, в зависимости от размера и размера журнала.

В WMQ отсутствует тип утечки памяти.Существуют переменные, такие как ограничение количества незафиксированных сообщений, которые не позволяют памяти, дескрипторам и другим ресурсам выйти из-под контроля.

0 голосов
/ 16 декабря 2010

По истечении времени ожидания транзакции транзакция jms будет откатываться.Поэтому ни одна транзакция не остается в удерживаемой позиции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...