java接口javax.transaction.transaction的实现需要线程安全吗?

06odsfpq  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(384)

是否执行了 javax.transaction.Transaction 需要线程安全吗?
这种方法的实现是否需要处理来自不同线程的并发请求?
例如:

// Thread A
transaction.commit();

// Thread B, while that commit is still running
transaction.setRollbackOnly();

我问这个问题是因为我可以看到infinispan以这种方式与事务管理器交互,从而导致死锁。我想知道这是infinispan或事务管理器中的错误。

uhry853o

uhry853o1#

jta说:
§3.3-事务接口
这个 Transaction.commit 以及 Transaction.rollback 方法允许提交或回滚目标对象。调用线程不需要具有与该线程关联的相同事务。如果不允许调用线程提交事务,事务管理器将抛出异常。
规范没有更多地说明这一点;因此,不要求供应商提供线程安全的实现 javax.transaction.Transaction .

相关问题