как реализовать Длительную распределенную транзакцию в j2ee - PullRequest
5 голосов
/ 30 ноября 2011

Я хочу переместить записи из одной базы данных в другую, которые находятся на разных машинах.записи должны быть удалены из первой базы данных и атомарно вставлены во вторую базу данных.

мы можем использовать xa?я полагаю, что xa использует алгоритм двухфазной фиксации, который требует блокирующих блокировок ресурсов

, целевая база данных - это база данных EIS, поэтому она должна быть заблокирована на минимальное время

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

XA действительно является протоколом блокировки двухфазной фиксации, но в моем случае есть только две сущности, при этом первая сущность работает очень быстро. поэтому 2PC будет работать эффективно для меня.

для более общего сценария можно использовать 3-фазную фиксацию. это неблокирующий протокол. хотя, похоже, нет никаких спецификаций Java.

тоже наткнулся на БТП и http://jotm.objectweb.org/jotm-btp.html не уверен, насколько легко он может соединиться с адаптером JDBC.

0 голосов
/ 30 ноября 2011

XA не имеет никакого воздействия на механизм блокировки. Это просто гарантирует, что ACIDity сохраняется, даже если вы обновите два отдельных транзакционных ресурса. Ваш сценарий использования обновляет только один, если я правильно понимаю, поэтому XA здесь не требуется.

...