transactions - JTA 是否可以跨多个线程工作?

标签 transactions jta distributed-transactions xa atomikos

从 JTA 规范中,我了解到它仅用于调用线程的分布式事务(或支持)。这是否意味着事务不能跨越多个线程?还是取决于实现?

是否有任何 JTA 实现支持跨线程 XA?

谢谢!

最佳答案

您可以使用 TransactionManager 的 getTransaction()在初始线程和 resume() 中在另一个线程中跨多个线程跨越相同的事务,或 suspend()/resume()将事务移动到另一个线程。

是否支持此功能取决于特定的事务管理器实现。这很有可能会得到支持,因为在例如同一事务需要跨多个 bean 传递(可能运行在不同的工作管理器上),或者如果应用程序服务器在集群中运行,甚至跨多个 VM 传递事务(在这种情况下,您可能需要真正深入研究特定的事务管理器实现或让应用程序服务器完成其作业)。

关于transactions - JTA 是否可以跨多个线程工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301334/

相关文章:

sql-server - 分布式事务和Read Commited Snapshot

java - 如何使用@Transactional读取spring方法中保存的实例

java - jta交易

java - JPA 与 JTA : Persist entity and merge cascaded child entities

spring - 在 Web 应用程序中使用 spring 的 jta

c# - 是否可以使用 WCF 实现长时间运行的多次写入事务?

Spring hibernate 插入竞争条件

mysql - MySQL 中的 SQL 事务到底有多原子化?

java - 代理的 REQUIRES_NEW 方法不会回滚(spring)