On 23 Dec 2004,
allond@fts-soft.com wrote:
> Hi All,
> I'm looking for a possible solution to the following problem:
>
> 1. My application consists of 2 separate processes (lets call them A
> and B), running on 2 separate machines (using CORBA as middleware)
> 2. Both A & B are using the SAME Oracle-DB instance (probably the same
> schema too - but not necessarily)
> 3. The tables are separate (A has its own tables, and so does B)
> 4. I want to implement kind of a "distributed" transaction:
> a. A will start a transaction, do it's INSERTs, and then "pass" the
> transaction to B.
> b. B will do it's INSERTs, on the transaction it got from A
> c. The COMMIT can be done either by A (after B finishes) or by B.
>
> Does Oracle have any solution for this issue?
> (I'm using Oracle 9i, C++, and OTL)
No server will guarantee an outside process transactional integrity
across processes. Oracle can handle 2 phase commits, but Oracle
must be in control of it. EJBs can handle 2 phase commits but the
container must be in control. What you can't do is ask Oracle to
guarantee the transactional integrity across two unrelated processes.
--
Galen deForest Boyer
Sweet dreams and flying machines in pieces on the ground.