Последовательность данных в транзакциях XAJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Последовательность данных в транзакциях XA

Сообщение Anonymous »

Предположим, что у нас есть база данных (например, Oracle) и поставщик JMS (например, HornetQ), участвующие в транзакции XA. Сообщение отправляется в очередь JMS, и некоторые данные сохраняются в базе данных в той же распределенной транзакции. After the transaction is committed, a message consumer will read the persisted data and process them in a separate transaction.

Regarding the first XA transaction, the following sequence of events may be executed by the transaction manager (e.g. JBoss)


[*]prepare (HornetQ)
prepare (Oracle) < /li>
Commit (hornetq) < /li>
Commit (oracle) < /li>
< /ol>

Что произойдет, если потребитель сообщения начнет читать данные после того, как Commit завершен в Hornetq, но все еще выполняется в Oracle? Будет ли потребитель сообщений читать устаревшие данные? /> Я бы сказал, что единственный способ для транзакционных ресурсов, чтобы предотвратить это, - это заблокировать всех читателей затронутых данных после завершения фазы подготовки до тех пор, пока не будет выпущен коммит. Таким образом, упомянутый выше потребитель сообщений будет блокироваться до тех пор, пока данные не будут совершены в базе данных.

Подробнее здесь: https://stackoverflow.com/questions/377 ... ansactions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»