如何解决接口javax.transaction.Transaction的实现是否需要线程安全?
javax.transaction.Transaction
的符合实现是否必须是线程安全的?
此实现是否可以处理来自不同线程的并发请求?
例如:
// Thread A
transaction.commit();
// Thread B,while that commit is still running
transaction.setRollbackOnly();
我问这个问题是因为我可以看到Infinispan以这种方式与事务管理器进行交互,从而导致死锁。我想了解这是否是Infinispan或事务管理器中的错误。
解决方法
JTA说:
§3.3-交易界面
Transaction.commit
和Transaction.rollback
方法允许目标对象被提交或回滚。调用线程不需要与该线程关联相同的事务。如果不允许调用线程提交事务,则事务管理器将引发异常。
规范对此不再赘述;因此,本身并不需要供应商提供javax.transaction.Transaction
的线程安全实现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。