在 oracle adf 中异步更新表时锁定异常



my jdev version :11.1.1.7

在我们的 adf 应用程序中,我们需要上传繁重的 csv 文件(10k-100k 行)并处理/验证每一行,并使用流程/验证状态在表中更新。 通过应用主键作为绑定变量的视图条件并提交每个更新的行,对每一行进行更新 上述所有过程都在使用 java.util.concurrent 实用程序同时发生。

一切正常,但很少有行遇到 oracle.jbo.JboException: JBO-25014:另一个用户更改了主键 oracle.jbo.Key[254 ] 的行。

我尝试在整个执行程序过程结束时更新表并批量提交所有更新的行,这工作正常,但这与其中一个要求相矛盾,因为用户必须等到过程结束才能看到 UI 中更新的记录数量。

我的查询 : 1.在这种情况下,如何在ADF中实现线程安全的数据库提交操作? 2.每个已处理/验证的行都应提交到数据库,以便用户可以在UI上查看更新的记录

在每次提交操作后,对 getViewObject 使用 "executequery()" 或 "closerowset()"。

例如:public void closemaster() { this.getMasterView().closeRowSet(); }

或者您可以使用:

public void closemaster() {
this.getMasterView().executeQuery();
}

这两个答案都有效。

我想你的问题会得到解决。

更新发生的情况。

最新更新