каков механизм работы xa транзакции?

323
19 мая 2017, 14:12

Рассмотрим сценарий когда пользователь хочет обновить данные на двух базах , которые расположены на других узлах сети. Для этого он использует transaction manager и xa транзакцию.

Поправьте если я не прав дальше:

  1. Сначала пользователь начинает транзакцию (используя реализацию UserTransaction) tx.begin() (в этом методе transaction manager делает enlist для ресурсов и вызывает start на каждом xa resource)

  2. do some work on statement...

  3. В конце он вызывает tx.commit()(transaction manager тут вызывает end на каждом xa resource. Начинается 2х фазный коммит.) В это время transaction manager рассылает всем xa resource'ам prepare и ждет XA_OK или XA_RDONLY и в случае XA_OK, рассылает всем commit.

Кроме того интересует вот что : tx manager может приостанавливать транзакцию : xaRes.end(xid, XAResource.TMSUSPEND); Но ведь у пользователя нет доступа к tx manager, как он может приостанавливать сам?

READ ALSO
Log4j не видит properties файл

Log4j не видит properties файл

У меня задача организовать вывод в консоль объектов при добавлении в базу:

579
Метод Main не завершается (java)

Метод Main не завершается (java)

При старте miltithreading программы из IDE (IDEA) программа корректно работает, завершается, все потоки отрабатывают, все ресурсы закрытыНо после сборки...

292
В чем хранить “деньги”? Float / Double

В чем хранить “деньги”? Float / Double

Был на собеседовании, спросили, "в переменной какого типа лучше хранить деньги", сказал Float, мол скорость, все дела- забраковали

513
импорт xml в бд на java

импорт xml в бд на java

Нужно произвести импорт записей из файла xml, все импортируется хорошо, но только первая запись, а нужно что бы всевот код импорта:

319