title: Propagation of Oracle Transactions Between C++ and Java
body: <p>We have an existing C++ application that we are going to gradually replace with a new Java-based system.  Until we have completely reimplemented everything in Java we expect the C++ and Java to have to communicate with each other (RMI, SOAP, messaging, etc - we haven't decided).</p>
  
  <p>Now my manager thinks we'll need the Java and C++ sides to participate in the same Oracle DB transaction.  This is related to, but different from the usual distrbuted transaction problem of having a single process co-ordinate 2 transactional resources, such as a DB and a message queue.</p>
  
  <p>I think propagating a transaction across processes is a terrible idea from a performance and stability point-of-view, but I am still going to be asked for a solution.</p>
  
  <p>I am familiar with XA transactions and I've done some work with the JBoss Transaction Manager, but my googling hasn't turned up anything good on propagating an XA transaction between 2 processes.</p>
  
  <p>We are using Spring on the Java side and their documentation explicitly states they do not provide any help with transaction propagation.</p>
  
  <p>We are not planning on using a traditional Java EE server (for example: IBM Websphere), which may have support for propagation (not that I can find any definitive documentation).</p>
  
  <p>Any help or pointers on solutions is greatly appreciated.</p>