从 JTA 规范中,我了解到它仅用于调用线程的分布式事务(或支持)。这是否意味着事务不能跨越多个线程?还是取决于实现?
是否有任何 JTA 实现支持跨线程 XA?
谢谢!
最佳答案
您可以使用 TransactionManager 的 getTransaction()在初始线程和 resume() 中在另一个线程中跨多个线程跨越相同的事务,或 suspend()/resume()将事务移动到另一个线程。
是否支持此功能取决于特定的事务管理器实现。这很有可能会得到支持,因为在例如同一事务需要跨多个 bean 传递(可能运行在不同的工作管理器上),或者如果应用程序服务器在集群中运行,甚至跨多个 VM 传递事务(在这种情况下,您可能需要真正深入研究特定的事务管理器实现或让应用程序服务器完成其作业)。
关于transactions - JTA 是否可以跨多个线程工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301334/