从JTA规范我明白它只为调用线程工作(或支持)分布式事务。这是否意味着不能跨多个线程跨越事务?或者它取决于实施?
是否有任何JTA实现支持跨线程的XA?
谢谢!
答案 0 :(得分:6)
您可以在初始线程中使用TransactionManager的getTransaction(),在另一个线程中使用resume()跨多个线程跨越同一事务,或suspend() / resume()移动另一个线程的事务。
如果支持此功能,则取决于特定的事务管理器实现。将很有可能支持这一点,因为例如在需要时需要这些功能。相同的事务需要跨多个bean传递(可能在不同的工作管理器上运行),或者如果应用服务器在集群中运行,甚至跨多个VM跨越事务(在这种情况下,您可能需要真正深入研究)特定的事务管理器实现或让app服务器进行其家庭工作)。
答案 1 :(得分:0)
不,如果您使用JTA实现,则不能使用getTransaction()。 例外是: JTA EntityManager不能使用getTransaction()。