いくつかのリレーショナル DB テーブルは、プロセス内に存在する単一のオブジェクト キャッシュによって管理されます。キャッシュがコミットされると、テーブルが更新されます。DB リレーショナル テーブルは通常の SQL クエリによって更新されますが、休止状態のような複雑なものではありません。
最終的に、他のプロセスは、互いに通信せずにこのオブジェクトを変更するビジネスに入りました。つまり、各プロセスはこのオブジェクトを初期化し(DBから読み取り)、更新します(DBにコミットします)。他のプロセスは、それが保持されていることを知りません古いキャッシュ。
このワークフローを修正する必要があります。私はいくつかの方法を考えました。1 つは、このオブジェクトを mBean にすることです。そのため、オブジェクトは 1 つのプロセスに存在し、すべてのプロセスは最終的に mBean メソッドの呼び出しによってそのプロセス内のオブジェクトを変更します。
ただし、このアプローチにはいくつかの問題があります。1) このキャッシュによって返されるすべてのオブジェクトは mBean であるため、メソッドの呼び出しがかなりおしゃべりになる可能性があります。2) また、すべてのプロセスが DB の一貫したデータ モデル (キャッシュ) を参照する必要があり、可能であればその内容を DB にマージする必要があります。(トランザクションのように)。DB が他のプロセスによって大幅に更新された場合、マージが失敗しても問題ありません。
Java のどのテクノロジーがこの問題の解決に役立つでしょうか?