понимание JTA Spring и Bitronix - PullRequest
1 голос
/ 01 марта 2011

Я пытаюсь понять, в чем разница между JTA, Spring и Bitronix?

Что я должен использовать для транзакций в Hibernate?

Ответы [ 2 ]

9 голосов
/ 01 марта 2011
  • JTA - это API для распределенного управления транзакциями. Он может быть реализован как часть сервера приложений или как отдельный менеджер транзакций.

  • Bitronix Transaction Manager - это отдельная реализация JTA.

  • Spring - это платформа, которая предоставляет (среди прочих функций) унифицированный интерфейс для управления транзакциями. В частности, управляемая Spring транзакция может использовать реализацию JTA в качестве бэкэнда.

Другими словами, в типичных приложениях Spring и Hibernate вы управляете транзакциями с помощью поддержки транзакций Spring, а Spring настроен на использование одного из администраторов внутренних транзакций:

  • Если вам не нужны распределенные транзакции, используйте собственную поддержку транзакций в Hibernate (HibernateTransactionManager)
  • Если вам нужны распределенные транзакции, используйте транзакции JTA (JtaTransactionManager). Особенно:
    • На полноценном сервере приложений JtaTransactionManager использует встроенную реализацию JTA
    • В автономной среде (например, Tomcat и т. Д.) Вам необходимо настроить автономную реализацию JTA, такую ​​как Bitronix.
3 голосов
/ 12 декабря 2016
  • JTA - это Java-транзакция API. Используя JTA, мы можем выполнить глобальную транзакцию.
  • Bitronix - это программное обеспечение, которое помогает реализовать JTA. А также помогает хранить данные в базе данных в последовательном порядке.

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

...