我们正在从Weblogic迁移到Websphere 7。它是一个遗留应用程序,包含EJB 2.0 bean。实体bean具有BMP。会话facade bean对实体bean进行更新,但更新在事务结束时被持久化到数据库(调用实体bean的ejbStore()方法),这会导致问题,因为更新对事务中的其他客户端不可见。在Weblogic中有一个设置"延迟更新直到tx结束",可以设置为false。这将导致在不等待事务结束的情况下持久化更新。我读到Websphere的默认行为是不等待事务结束,但它似乎不是这样工作的。
我也尝试过设置以下JVM参数:
-Dcom.ibm.ws.pm.deferredcreate=false-Dcom.ibm.ws.pm.batch=错误
这也无济于事。
如有任何帮助,我们将不胜感激。
谢谢,Dikshit
CMP有声明性选项,但我认为BMP没有选项。应该可以使用EJBContextExtension.flushCache()WebSphere Application Server扩展方法以编程方式强制容器存储/刷新所有未处理的实体:
http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.javadoc.doc/web/apidocs/com/ibm/websphere/ejbcontainer/EJBContextExtension.html