2017-07-05 4 views
0

ホスト 'A'でDBのテーブルに値を挿入してトランザクションを開始します。挿入するとすぐにprocessBuilderを呼び出して、同じDBテーブルから更新された値をキャッシュにロードするホスト 'B'をリフレッシュします。しかし値はロードされていません。processBuilderが別のホストにデータをロードできませんでしたか?

processBuilderとトランザクションとの間に関連はありますか?トランザクションは、processBuilderを呼び出すホストからまだ完了していないためです。

ホスト 'A'でprocessBuilderを呼び出す前にDBから値を取得しようとしましたが、最近挿入された値が返されます(結果セットは10行を返します)。同じselect文を呼び出すホスト 'B'行。

+0

HostBにはどのようなプロセスがありますか?それがJavaプロセス(またはその他)の場合は、DBキャッシングを使用している可能性があり、変更された値 –

答えて

1

「すぐに赤い旗を挿入します。

はい、トランザクションとprocessBuilderの間には関連性があります。トランザクションがコミットされていない場合、すべて他のセッションは変更を見ることができません。自動コミットが有効になっているDBアプリケーション環境でプログラミングすることに慣れていて、自動コミットが無効になっているDBアプリケーション環境に切り替える場合は、この種の問題を迂回する可能性があります。

関連する問題