2017-04-04 9 views
0

私jdevバージョン:私たちのADFアプリケーションで11.1.1.7ロック例外のOracle ADFで非同期にテーブルを更新している間

我々は/重いのcsvファイル(10K-100K行)とプロセスをアップロードそれぞれの行を検証する必要があり、プロセス/検証ステータスでテーブルを更新します。 バインド変数として主キーを持つビュー条件を適用し、更新された各行をコミットすることによって、各行の更新が行われます。 上記のプロセスはすべて、java.util.concurrentユーティリティを使用して同時に実行されています。

すべては正常ですが、oracle.jbo.JboExceptionが発生する行はほとんどありません。JBO-25014:別のユーザーが、主キーoracle.jbo.Key [254]で行を変更しました。

私はエグゼキュータプロセス全体の終了時にテーブルを更新し、すべて正常に動作するバッチで更新された行をすべてコミットしようとしましたが、これはユーザーがプロセスの最後まで待つ必要があるためUIの更新されたレコード。

私のクエリ: 1.このような状況で、ADFでスレッドセーフなDBコミット操作を実装する方法はありますか? 2.すべてのコミット操作がgetviewオブジェクトに「executequery()」または「closerowset()」を使用した後で、更新されたレコードをユーザーがUIで表示できるように、処理済み/検証済み行をDBにコミットする必要があります。

答えて

0

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

またはあなたが使用することができます。

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

両方の答えが動作します。

あなたの問題は解決されると思います。

更新何が起こるか。

+0

これをimplクラスで使用しました。メソッドをバインドでき、バッキングBeanの操作バインディングを介してアクセスできます。 – keval

関連する問題