Пара таблиц реляционной БД управляется одним кешем объектов, который находится в процессе. Когда кеш фиксируется, таблицы обновляются. Реляционные таблицы БД обновляются обычными SQL-запросами, а не чем-то более причудливым, как спящий режим.
В конце концов, другие процессы занялись изменением этого объекта без связи друг с другом, т. Е. Каждый процесс будет инициализировать этот объект (читать из БД) и обновлять его (фиксировать в БД), а другой процесс не будет знать об этом, держась за устаревший кеш.
Я должен исправить этот рабочий процесс. Я подумал о паре способов. Один из них — сделать этот объект mBean. Таким образом, объект будет находиться в одном процессе, и каждый процесс в конечном итоге будет изменять объект в этом процессе с помощью вызовов метода mBean.
Однако у этого подхода есть пара проблем. 1) Каждый объект, возвращаемый этим кешем, является mBean, что может сделать вызовы методов довольно болтливыми. 2) Также существует требование, чтобы каждый процесс видел непротиворечивую модель данных (кэш) БД и, если возможно, сливал свое содержимое с БД. (как транзакция). Если БД была значительно обновлена каким-либо другим процессом, слияние может завершиться ошибкой.
Какие технологии в Java помогут решить эту проблему?