首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Websphere上的乐观锁

Websphere上的乐观锁
EN

Stack Overflow用户
提问于 2013-09-19 18:38:13
回答 1查看 598关注 0票数 0

我在使用WAS 8.0.7的JPA中遇到了乐观锁定问题。我有一个使用EJB3+JPA2 (SQL Server,XA数据源)的Web项目。我有两个JPA实体X和Y。

X与Y具有OneToMany关系。

两个实体都有一个@Version字段(并且在相应的SQL表中有一个version列)。

虽然这是默认设置,但我在persistence.xml中设置了一个<property name="openjpa.LockManager" value="version"/>

我使用容器管理事务在无状态EJB的方法x()中持久化实体X。

方法x()创建并持久化一个实体X,并继续在X上执行一些业务处理,直到它返回。

假设方法x()是从几个web请求中调用的。

第一个请求调用x()并创建一个X实体。

同时,如果第二个请求调用方法x(),它会阻塞,直到第一个请求完成。

这是使用乐观锁定的适当行为吗?第二个请求是否应该继续并抛出OptimisticLockException,以防出现并发更新?

相反,它只是像使用悲观锁定一样阻塞。

EN

回答 1

Stack Overflow用户

发布于 2013-09-19 22:06:54

检查数据源隔离级别设置(http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Frdat_isolevtab.html)

高隔离级别可能会锁定所有引用的表(例如,selected),直到事务结束。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18892424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档