【问题标题】:Do I need an application server for transaction management?我需要一个应用服务器来进行事务管理吗?
【发布时间】:2011-12-03 04:22:56
【问题描述】:

我需要一个应用服务器来进行事务管理吗?真的。

我的问题是关于 Spring 框架的。 他们说(Spring Documentation),

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

“通常,只有当您的应用程序需要处理跨多个资源的事务时,您才需要应用程序服务器的 JTA 功能”, 我使用 Jboss AS 服务器,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 更强大的编程模型和更高效的编程模型。 谢谢。

【问题讨论】:

  • 我猜你的问题本身就有答案。您可以使用基于应用服务器的 TM 或使用 Spring TM

标签: hibernate spring transactions jta


【解决方案1】:

使用 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

【讨论】:

    【解决方案2】:

    这是 spring 资源对您的问题的看法:

    事务管理是否需要应用服务器?

    Spring 框架的事务管理支持显着变化 关于 J2EE 应用程序何时需要 应用服务器。特别是,您不需要应用程序 服务器只是为了通过 EJB 进行声明性事务。事实上,即使 你有一个具有强大 JTA 能力的应用服务器,你可以 很好地决定 Spring Framework 的声明式事务提供 比 EJB CMT 更强大、更高效的编程模型。 通常,仅当您需要应用程序服务器的 JTA 功能时 需要征用多个事务资源,并且对于许多 能够跨多个处理事务的应用程序 资源不是必需的。例如,许多高端应用 使用单一的、高度可扩展的数据库(例如 Oracle 9i RAC)。 独立的事务管理器,例如 Atomikos Transactions 和 JOTM 是其他选项。 (当然你可能需要其他应用服务器 JMS 和 JCA 等功能。)最重要的一点是 使用 Spring 框架,您可以选择何时扩展您的 应用程序到成熟的应用程序服务器。日子一去不复返了 当使用 EJB CMT 或 JTA 的唯一替代方法是编写代码时 使用本地事务,例如 JDBC 连接上的事务,并面对 如果您需要该代码在全局范围内运行,则需要大量返工, 容器管理的事务。使用 Spring 框架,只有 配置需要更改,以便您的代码不必更改。

    More Detail..

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 1970-01-01
      • 2013-04-11
      • 2020-04-18
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      相关资源
      最近更新 更多