Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: How to use the SAME transaction in a distributed environment
On 23 Dec 2004, allond_at_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.Received on Fri Dec 24 2004 - 11:23:03 CST