Каков «лучший» способ распределенных транзакций между несколькими базами данных с использованием Spring и Hibernate?
У меня есть приложение - больше похоже на утилиту - которое сидит в углу и периодически обновляет две разные базы данных.
Это небольшое автономное приложение, созданное с помощью Spring Application Context. В контексте настроены две фабрики сеансов Hibernate, в свою очередь использующие источники данных Commons DBCP, настроенные в Spring.
В настоящее время нет управления транзакциями, но я хотел бы добавить некоторые из них. Обновление одной базы данных зависит от успешного обновления другой.
Приложение не находится в контейнере Java EE - оно загружается статическим классом запуска, вызываемым из сценария оболочки. Класс запуска создает экземпляр Application Context, а затем вызывает метод на одном из его bean-компонентов.
Что 'Лучший' способ поместить транзакционность вокруг обновлений базы данных?
Я оставлю определение "Лучший' для вас, но я думаю, что это должно быть какой-то функциейлегко настроить ','легко настроить ','недорогой», а также 'легко упаковывать и распространять, Естественно, FOSS был бы хорош.