Ada contoh di blog Laurent Schneider menggunakan paket DBMS_XA di dalam Oracle untuk mengizinkan beberapa sesi bekerja dalam transaksi yang sama. Jadi mungkin saja sesi Java dan C++ berpartisipasi dalam transaksi yang sama tanpa memerlukan koordinator tambahan apa pun.
Sebagai alternatif, Anda dapat mempertimbangkan untuk menggunakan Workspace Manager. Itu awalnya dirancang untuk mendukung transaksi yang berjalan sangat lama (yaitu memanipulasi banyak data spasial untuk pengembangan yang diusulkan). Pada dasarnya, Anda dapat membuat ruang kerja, yang dalam kasus Anda kira-kira setara dengan transaksi bernama. Baik kode Java dan C++ dapat memasuki ruang kerja tersebut (dari sesi terpisah) dan keduanya dapat memanipulasi dan melakukan data di ruang kerja tersebut. Setelah transaksi selesai, Anda dapat menggabungkan ruang kerja ke ruang kerja LIVE, yang setara dengan melakukan komit dalam transaksi normal.
Di sisi lain, saya akan sangat setuju dengan penilaian awal Anda bahwa mengoordinasikan transaksi antar proses kemungkinan besar merupakan ide yang buruk dari sudut pandang kinerja, stabilitas, kesederhanaan, dan pemeliharaan. Di sisi lain, ini mungkin merupakan persyaratan bisnis yang sah tergantung pada bagaimana kode C++ akan dihentikan (yaitu apakah mungkin untuk mengganti kode sedemikian rupa sehingga transaksi dapat secara eksklusif Java atau secara eksklusif C++)