Каков «лучший» способ распределенных транзакций между несколькими базами данных с использованием Spring и Hibernate?

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

Это небольшое автономное приложение, созданное с помощью Spring Application Context. В контексте настроены две фабрики сеансов Hibernate, в свою очередь использующие источники данных Commons DBCP, настроенные в Spring.

В настоящее время нет управления транзакциями, но я хотел бы добавить некоторые из них. Обновление одной базы данных зависит от успешного обновления другой.

Приложение не находится в контейнере Java EE - оно загружается статическим классом запуска, вызываемым из сценария оболочки. Класс запуска создает экземпляр Application Context, а затем вызывает метод на одном из его bean-компонентов.

Каков «лучший» способ обеспечить транзакционность обновлений базы данных?

Я оставлю вам определение «лучший», но я думаю, что это должна быть функция «легко настроить», «легко настроить», «недорого» и «легко упаковывать и распространять». Естественно, FOSS был бы хорош.

Ответы на вопрос(5)

Ваш ответ на вопрос