0

我们正在从 Weblogic 迁移到 Websphere 7。它是一个遗留应用程序,包含 EJB 2.0 bean。实体 bean 具有 BMP。会话外观 bean 对实体 bean 进行更新,但更新在事务结束时被持久保存到数据库(调用实体 bean 的 ejbStore() 方法),这会导致问题,因为具有事务的其他客户端看不到更新。在 Weblogic 中有一个设置“delay-updates-until-end-of-tx”可以设置为 false。这会导致更新被持久化,而无需等待事务结束。我读到 Websphere 的默认行为是不等待事务结束,但它似乎不像那样工作。

我也尝试设置以下 JVM 参数:

-Dcom.ibm.ws.pm.deferredcreate=false -Dcom.ibm.ws.pm.batch=false

这也没有帮助。

对此的任何帮助将不胜感激。

谢谢, 狗屎

4

1 回答 1

2

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

于 2011-06-20T18:39:28.410 回答