Двухфазный коммит в коте с использованием JPA
У меня есть приложение, развернутое в Tomcat с бэкэнд-оракулом и JPA в качестве диспетчера сохраняемости. Теперь мы представляем промежуточную базу данных (наиболее вероятно SolidDB или TimesTen), которая будет вводить дополнительное требование двухфазной фиксации. Поскольку tomcat не поддерживает J2EE, мы не сможем использовать обычные методы. Как насчет использования Atomikos. Есть ли другая система управления транзакциями, которая поддерживает tomcat. Наше приложение будет иметь пиковую нагрузку, скажем, 40 миллионов записей в день. Будет ли использование Atomikos надежным? Любые другие предложения приветствуются.
2 ответа
Есть несколько вариантов автономной JTA,
Видите, Атомикос против JOTM против Битроникс против?
Вам также следует рассмотреть возможность использования сервера Java EE.
Для EclipseLink он поддерживает JOTM и большинство серверов Java EE. Для интеграции с другим вам просто нужно создать подкласс JTATransactionController.
Одно решение реализовано без использования Atomikos, JOTM или Bitronix. Это с помощью АОП вместе с JPA. Мы определяем 2 фабрики менеджеров сущностей и 2 менеджера транзакций. Используя Spring AOP, мы применяем оба менеджера транзакций к одной и той же функции. Таким образом, всякий раз, когда возникает исключение, проверка выполняется двумя менеджерами транзакций. Это объясняется по ссылке, приведенной ниже http://tiwarij2eeblog.blogspot.com/2010/12/handling-transaction-with-multiple.html