是否执行了 javax.transaction.Transaction
需要线程安全吗?
这种方法的实现是否需要处理来自不同线程的并发请求?
例如:
// Thread A
transaction.commit();
// Thread B, while that commit is still running
transaction.setRollbackOnly();
我问这个问题是因为我可以看到infinispan以这种方式与事务管理器交互,从而导致死锁。我想知道这是infinispan或事务管理器中的错误。
1条答案
按热度按时间uhry853o1#
jta说:
§3.3-事务接口
这个
Transaction.commit
以及Transaction.rollback
方法允许提交或回滚目标对象。调用线程不需要具有与该线程关联的相同事务。如果不允许调用线程提交事务,事务管理器将抛出异常。规范没有更多地说明这一点;因此,不要求供应商提供线程安全的实现
javax.transaction.Transaction
.