Нужен ли сервер приложений для управления транзакциями? - PullRequest
0 голосов
/ 03 декабря 2011

Нужен ли сервер приложений для управления транзакциями ?, действительно.

У меня вопрос к Spring Framework.Они сказали (Spring Documentation),

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html#d0e20594

«Как правило, вам нужна возможность JTA сервера приложений, только если ваше приложение должно обрабатывать транзакции через несколько ресурсов», я использую Jboss AS Server иJBoss может предоставлять соединения из пула соединений и управлять транзакциями.Мой файл конфигурации использует (локально):

<!-- Transaction Config -->
<bean id="transactionManager"
      class="org.springframework.orm.hibernate3.HibernateTransactionManager"
      p:sessionFactory-ref="sessionFactory"/>

Нужно ли мне изменить (Глобально):

<bean id="txManager" 
      class="org.springframework.transaction.jta.JtaTransactionManager"/>

Я заказываю пул соединений из Jboss.Документация Spring гласит:

В частности, вам не нужен сервер приложений просто для декларативных транзакций через EJB.Фактически, даже если ваш сервер приложений обладает мощными возможностями JTA, вы можете решить, что декларативные транзакции Spring Framework предоставляют больше возможностей и более продуктивную модель программирования, чем EJB CMT.Спасибо.

Ответы [ 2 ]

2 голосов
/ 03 декабря 2011

Использование ApplicationServer для управления транзакциями зависит от вашего варианта использования,

Если ваша транзакция распределена (охватывает несколько сторон), то вы хотели бы использовать возможности транзакции JTA, для простой транзакции базы данных вам не нужен сервер приложений, а встроенных возможностей Spring более чем достаточно.

Хотя это также зависит от вашей архитектуры, определенной для вашего приложения, в некоторой организации это своего рода практика использования JTA, даже если граница транзакции ограничена и не требует распределенной транзакции.

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

Некоторые ссылки:

http://www.javaworld.com/javaworld/jw-04-2007/jw-04-xa.html

http://en.wikipedia.org/wiki/Java_Transaction_API

0 голосов
/ 03 декабря 2011

Вот что говорит источник Spring по вашему вопросу:

Нужен ли сервер приложений для управления транзакциями?

Управление транзакциями в Spring FrameworkПоддержка значительно меняет традиционное представление о том, когда для приложения J2EE требуется сервер приложений.В частности, вам не нужен сервер приложений только для того, чтобы иметь декларативные транзакции через EJB.На самом деле, даже если у вас есть сервер приложений с мощными возможностями JTA, вы вполне можете решить, что декларативные транзакции Spring Framework предлагают большую мощность и гораздо более продуктивную модель программирования, чем EJB CMT.Как правило, вам нужна возможность JTA сервера приложений, только если вам нужно подключить несколько транзакционных ресурсов, и для многих приложений возможность обработки транзакций через несколько ресурсов не является обязательной.Например, многие высокопроизводительные приложения используют одну масштабируемую базу данных (например, Oracle 9i RAC).Автономные менеджеры транзакций, такие как Atomikos Transactions и JOTM, являются другими вариантами.(Конечно, вам могут понадобиться другие возможности сервера приложений, такие как JMS и JCA.) Наиболее важным моментом является то, что с помощью Spring Framework вы можете выбрать, когда масштабировать ваше приложение до полноценного сервера приложений.Прошли те времена, когда единственной альтернативой использованию EJB CMT или JTA было написание кода с использованием локальных транзакций, таких как транзакции в соединениях JDBC, и трудоемкая доработка, если вам когда-нибудь понадобился этот код для запуска в глобальных транзакциях, управляемых контейнером.В Spring Framework необходимо изменить только конфигурацию, чтобы ваш код не нуждался в этом.

Подробнее ...

...