Я использую Oracle 11g для своей базы данных и функцию Oracle Streams AQ в качестве реализации JMS.
Насколько я знаю, должна быть возможность реализовать основанный на Spring POJO (MDP), основанный на сообщениях, который использует один и тот же источник данных как для доступа к транзакционным данным, так и для транзакций JMS - все без XA-транзакций (IIRC, это было продается как особенность SpringSource Advanced Pack для Oracle).
Возможно ли это и с помощью Hibernate? В идеале мой MDP должен запустить транзакцию JMS и прочитать сообщение из очереди, а затем повторно использовать транзакцию для доступа к данным через Hibernate. Если что-то пойдет не так, обе транзакции JMS и базы данных будут отменены без использования двухфазной фиксации (2PC).
Я не большой гуру транзакций, поэтому, прежде чем я начну копать глубже, кто-нибудь может подтвердить, что это возможно и имеет смысл?
Обновление:
Мне нужна реализация шаблона ресурса общих транзакций . Пример кода демонстрирует его для ActiveMQ и JDBC, но мне нужно использовать Oracle Streams AQ и Hibernate.
Update2:
SpringSource Advanced Pack для Oracle был с открытым исходным кодом как часть Spring Data JDBC, и он "предоставляет возможность использования одного локального менеджера транзакций для обоих
доступ к базе данных и сообщениям без использования дорогостоящей распределенной двухфазной фиксации
Управление транзакциями ".