Мне нужно заархивировать транзакцию распределенной базы данных между Java-приложением и приложением c ++ таким образом, чтобы оба приложения совместно использовали одну и ту же транзакцию (может видеть незафиксированные данные этой транзакции).
например. Я хотел бы сделать это:
- Java-приложение вставляет несколько записей
- Java-приложение вызывает код C ++ синхронно (например, веб-сервис)
- код c ++ «присоединяется» к той же транзакции и может читать ранее вставленные записи и
может изменить некоторые другие данные и возвращает
- Java-приложение может видеть модификации приложения C ++ и может решать, следует ли ему зафиксировать или откатить транзакцию
Какие существуют подходы для этого?
Какие подводные камни могут возникнуть?
Есть ли альтернативные решения для моей проблемы?
Решение может быть специфичным для оракула (Oracle 10 подойдет), но более общий подход (по крайней мере, на стороне java) предпочтительнее, если он равен.