У меня есть один процесс, который создает объект базы данных, а затем запускает второй процесс. Затем он ожидает, пока второй процесс найдет и обновит объект базы данных, прежде чем завершить свою обработку и тем самым зафиксировать объект базы данных. Проблема, по-видимому, заключается в том, что, поскольку первоначальный процесс, выполнивший создание сущности, не зафиксировал сущность базы данных к тому времени, когда второй процесс пытается найти сущность (которую он не может найти), первый процесс никогда не завершается, потому что второй процесс не может завершить, и вещи goobered.
Некоторый контекст: первый процесс создает объект, запускает второй процесс на внешнем компьютере и устанавливает статус объекта в STARTED. Второй процесс на внешнем компьютере выполняет вызов веб-службы, и эта веб-служба находит объект и обновляет статус объекта до READY. Первый процесс имеет цикл, который проверяет состояние объекта, и после того, как он был изменен с НАЧАЛО на ГОТОВО, он выполняет дополнительную обработку и завершается. Однако второй процесс никогда не сможет найти объект (я думаю), поскольку он никогда не фиксируется из сеанса Hibernate, где он был создан в первом процессе, который не завершился к тому времени, когда второй процесс пытается найти объект.
Как лучше сделать, чтобы такого не было? Есть ли способ зафиксировать транзакцию на полпути, непосредственно перед запуском второго процесса, чтобы сущность присутствовала в базе данных для поиска вторым процессом?
Спасибо за ваши предложения и т.д.