Подтвердить что ты не робот

Atomikos против JOTM против Bitronix против?

Я новичок в JTA и руководители транзакций. Может ли кто-нибудь объяснить плюсы и минусы каждого из них? Не стесняйтесь добавлять другие, которые я не перечислял в названии.

Кроме того, не имеют ли главные серверы приложений (WebSphere, JBoss, Glassfish) собственный менеджер транзакций JTA? В этих средах вы все равно будете использовать эти сторонние реализации?

4b9b3361

Ответ 1

Я новичок в JTA и руководители транзакций. Может ли кто-нибудь объяснить плюсы и минусы каждого из них? Не стесняйтесь добавлять другие, которые я не перечислял в названии.

Автономные менеджеры транзакций, о которых я знаю, включают Bitronix, SimpleJTA, Tyrex (dead?), JOTM (используется в Jonas), GeronimoTM/Jencks (используется в Geronimo), JBossTS (используется в JBoss) и Atomikos.

Я никогда не тестировал их полностью (и это то, что вам нужно было бы сделать, если вам нужно выбрать один), поэтому я не могу предоставить исчерпывающие плюсы и минусы (и это потребует некоторой работы). Но вот несколько ссылок:

На всякий случай, вот моя очень личная точка зрения:

  • Я видел много жалоб на JOTM.
  • Я думаю, что GeronimoTM/Jencks не хватает документации.
  • SimpleJTA не реализует JTS и неактивен.
  • Bitronix имеет приличную документацию, но не предлагает поддержки.
  • Atomikos - впечатляющий продукт, хорошо документированный и предлагает поддержку.
  • JBossTS aka ArjunaTS определенно является зрелым продуктом (см. объявление о приобретении для некоторой истории) и предлагает поддержку.

Лично я бы отменил Atomicos и JBossTS и протестировал их хардкор, если бы мне пришлось выбирать один.

Кроме того, не имеют ли главные серверы приложений (WebSphere, JBoss, Glassfish) собственный менеджер транзакций JTA?

Конечно, они делают, JTA является частью спецификации Java EE, сервер Java EE должен ее поддерживать.

В этих средах вы все равно будете использовать эти сторонние реализации?

Нет, я бы использовал предоставленный менеджер транзакций (для простоты, поддержки и т.д.).

Ответ 2

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

Что касается JOTM, я вполне уверен, что он по крайней мере иногда подделывает протокол двухфазной фиксации. У меня была база данных PostgreSQL с отключенными функциями двухфазной фиксации, и JOTM смог работать так, как если бы у меня были реальные распределенные транзакции. Реальные менеджеры транзакций (например, реализованные в GlassFish) сообщили об ошибке в таком случае.

Я использовал JPA2 с Hibernate 4 в моем приложении, если это имеет значение.