Spring MVC - 分布式数据库事务
Spring MVC - Distributed Database Transaction
我目前正在使用 Spring MVC(没有 Maven)开发 Web 应用程序。
我需要的是在两个本地数据库之间创建分布式事务,以便代码将在(理论上)两阶段提交中更新所有这些。
现在,因为我正在为一个学校项目做这件事,所以我处于一个简单的环境中,只需要从一个数据库中的 table 中取出一行并将其放入 table 在另一个数据库上,当然是原子的(理论上,这样的事务应该是分布式的,因为我使用的是两个不同的数据库,而不仅仅是一个)。
我的问题是,如何部署一个首先连接到两个 MySQL 数据库然后执行分布式事务的 Spring bean?我应该使用一些外部库还是仅使用 Spring 框架就可以实现所有目标?在这种情况下,请 link 给我一个例子或指南好吗?
提前感谢您的帮助:)
- Spring 有一个 PlatformTransactionManager 接口,它是一个
抽象 它有很多实现,比如
DataSourceTransactionManager、HibernateTransactionManager 等
- 由于你使用的是分布式事务所以你需要使用
JTATransactionManager
- 这些 TransactionManagers 由 spring 提供
是其他框架提供的实现的包装器
- 现在,如果是 JTA,您将使用应用程序服务器
或像 Atomikos 这样的独立 JTA 实现
- 步骤如下:-
- 使用应用程序服务器在 spring 中配置事务管理器
或独立的 JTA 实现
- 在 spring
中启用事务管理
- 然后在你的代码中配置上面的@Transactional注解
你的方法
- 查看以下链接
- http://docs.spring.io/spring/docs/current/spring-framework-reference/html/transaction.html
- http://www.byteslounge.com/tutorials/spring-jta-multiple-resource-transactions-in-tomcat-with-atomikos-example
我目前正在使用 Spring MVC(没有 Maven)开发 Web 应用程序。 我需要的是在两个本地数据库之间创建分布式事务,以便代码将在(理论上)两阶段提交中更新所有这些。
现在,因为我正在为一个学校项目做这件事,所以我处于一个简单的环境中,只需要从一个数据库中的 table 中取出一行并将其放入 table 在另一个数据库上,当然是原子的(理论上,这样的事务应该是分布式的,因为我使用的是两个不同的数据库,而不仅仅是一个)。
我的问题是,如何部署一个首先连接到两个 MySQL 数据库然后执行分布式事务的 Spring bean?我应该使用一些外部库还是仅使用 Spring 框架就可以实现所有目标?在这种情况下,请 link 给我一个例子或指南好吗?
提前感谢您的帮助:)
- Spring 有一个 PlatformTransactionManager 接口,它是一个 抽象 它有很多实现,比如 DataSourceTransactionManager、HibernateTransactionManager 等
- 由于你使用的是分布式事务所以你需要使用 JTATransactionManager
- 这些 TransactionManagers 由 spring 提供 是其他框架提供的实现的包装器
- 现在,如果是 JTA,您将使用应用程序服务器 或像 Atomikos 这样的独立 JTA 实现
- 步骤如下:-
- 使用应用程序服务器在 spring 中配置事务管理器 或独立的 JTA 实现
- 在 spring 中启用事务管理
- 然后在你的代码中配置上面的@Transactional注解 你的方法
- 查看以下链接
- http://docs.spring.io/spring/docs/current/spring-framework-reference/html/transaction.html
- http://www.byteslounge.com/tutorials/spring-jta-multiple-resource-transactions-in-tomcat-with-atomikos-example