Ситуация:Почему мой является EntityManager выборки устаревшей объект базы данных
- App A (война работает на коте 7, остальное интерфейс для веба-приложения)
- App B (Java автономного, запланированные пакетных заданий Загрузки данных из файла в базу данных)
- Между общей таблицей управления с записью на файл.
- Приложение A правильно сохраняет новую запись в таблице управления и устанавливает соответствующее состояние (ожидает), сигнализируя, что приложение B для начала обработки.
- Веб-приложение правильно отображает состояние в ожидании.
- Приложение B обрабатывает пакет, загружает данные и правильно устанавливает новое состояние (обработанное), сигнализирующее, что загрузка завершена. Это легко проверить простым запросом с помощью fx Squirrel.
- При обновлении страницы в веб-приложении состояние отображается неправильно, как ожидающее, а не правильное состояние: обработано. При отладке ответа переменная состояния назначается в ожидании. Мои журналы указывают, что запрос выполняется при обновлении.
- Если я перезагружу свой Tomcat, следующий запрос покажет правильный результат, то есть состояние будет обработано. Это также озадачивает меня, что помимо EntityManager поддерживает объект базы данных?
Проблема: Я просто не могу понять, почему приложение А продолжает видеть состояние в ожидании. Я уже пробовал несколько вещей, чтобы гарантировать, что сущностьManager имеет очищенный кеш (как для приложений A, так и для приложения B), но все же запросы App A в конечном итоге получают неправильное состояние.
Вы очищаете свой EntityManager и обновляете объекты каждый раз, когда вы обновляете/вставляете оба приложения A/App B? –
Обязательство о транзакции должно быть скрыто. И из-за того, что все мои вставки/обновления выполняются в транзакциях, а истинное :-) состояние легко проверяется с помощью fx Squirrel. – MMA