LaurentSchneiderのブログに例があります Oracle内でDBMS_XAパッケージを使用して、複数のセッションが同じトランザクションで機能できるようにします。したがって、追加のコーディネーターを必要とせずに、JavaセッションとC++セッションを同じトランザクションに参加させることができます。
または、WorkspaceManagerの使用を検討することもできます。これは元々、非常に長時間実行されるトランザクションをサポートするように設計されていました(つまり、提案された開発のために大量の空間データを操作する)。基本的に、ワークスペースを作成できます。この場合、名前付きトランザクションとほぼ同等です。 JavaコードとC++コードの両方が(別々のセッションから)そのワークスペースに入る可能性があり、両方がそのワークスペース内のデータを操作およびコミットする可能性があります。トランザクションが完了したら、ワークスペースをLIVEワークスペースにマージできます。これは、通常のトランザクションでコミットを実行するのと同じです。
一方、プロセス間のトランザクションの調整は、パフォーマンス、安定性、単純さ、および保守の観点から悪い考えである可能性が非常に高いという最初の評価に強く同意します。一方、C ++コードがどのように廃止されるか(つまり、トランザクションがJavaのみまたはC ++のみになるようにコードを置き換えることができるかどうか)によっては、正当なビジネス要件になる可能性があります。