既存の C++ アプリケーションを、新しい Java ベースのシステムに徐々に置き換える予定です。Java ですべてを完全に再実装するまでは、C++ と Java が相互に通信する必要があると予想されます (RMI、SOAP、メッセージングなど - まだ決定していません)。
今、私のマネージャーは、同じ Oracle DB トランザクションに参加するには、Java 側と C++ 側が必要になると考えています。これは、DB やメッセージ キューなどの 2 つのトランザクション リソースを 1 つのプロセスで調整するという通常の分散トランザクションの問題と関連していますが、これとは異なります。
プロセス間でトランザクションを伝播することは、パフォーマンスと安定性の観点からはひどい考えだと思いますが、それでも解決策を求められます。
私は XA トランザクションに精通しており、JBoss Transaction Manager でいくつかの作業を行いましたが、2 つのプロセス間で XA トランザクションを伝播するのに良い結果が得られませんでした。
Java 側で Spring を使用していますが、Spring のドキュメントには、Spring はトランザクションの伝播を支援しないと明示的に記載されています。
従来の Java EE サーバー (IBM Websphere など) を使用する予定はありません。これは、伝播をサポートしている可能性があります (決定的なドキュメントを見つけることができるわけではありません)。
解決策に関するヘルプやポインタは大歓迎です。