У меня есть объект, у которого есть CallBackListener, зарегистрированный с использованием postPersist и postUpdate. Слушатель принимает объект и отправляет идентификатор в очередь JMS, которая выполняет дальнейшую обработку. Представление и потребление сообщений настолько быстры, что они происходят до того, как первоначальная сессия завершила транзакцию.Мне нужно знать, когда hibernate завершил транзакцию
В результате MDB либо не может найти объект, либо объект устарел. Я действительно хочу, чтобы проверить MDB, чтобы убедиться, что исходная транзакция завершена, прежде чем использовать это сообщение.
Любые предложения?
Я провел некоторое тестирование с этим и, похоже, перехватил уровень транзакции БД. Другими словами, он запускается после того, как он передал данные в БД, а не когда транзакция java совершена. Я все еще копаю. – Preston
Не было бы лучше, если бы я отправил JMS-сообщение после того, как DB txn был зафиксирован? Таким образом, MDB увидит зафиксированные данные. Или вы планируете внедрить механизм транзакций, принимающий входные данные в виде сообщений JMS и используя RDBMS для сохранения? –