У нас есть существующее приложение C++, которое мы собираемся постепенно заменить новой системой на основе Java. Пока мы полностью не переопределим все на Java, мы ожидаем, что C++ и Java должны взаимодействовать друг с другом (RMI, SOAP, обмен сообщениями и т. д. — мы еще не решили).
Теперь мой менеджер считает, что нам нужно, чтобы стороны Java и C++ участвовали в одной и той же транзакции Oracle DB. Это связано с обычной проблемой распределенных транзакций, но отличается от нее, когда один процесс координирует 2 транзакционных ресурса, таких как БД и очередь сообщений.
Я думаю, что распространение транзакции между процессами — ужасная идея с точки зрения производительности и стабильности, но меня все равно спросят о решении.
Я знаком с транзакциями XA и немного поработал с диспетчером транзакций JBoss, но мой поиск в Google не дал ничего хорошего в распространении транзакции XA между двумя процессами.
Мы используем Spring на стороне Java, и в их документации прямо указано, что они не предоставляют никакой помощи в распространении транзакций.
Мы не планируем использовать традиционный сервер Java EE (например, IBM Websphere), который может иметь поддержку распространения (не то, чтобы я мог найти какую-либо окончательную документацию).
Любая помощь или указатели на решения очень ценятся.