Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Distributed transactions (two-phase commint) without DB links

RE: Distributed transactions (two-phase commint) without DB links

From: MacGregor, Ian A. <>
Date: Mon, 14 Mar 2005 13:33:39 -0800
Message-ID: <>

It's been quite a few years, but before Oracle announced their 2PC = mechanism, I wrote a program which required data to be committed on two = different databases. The Pro*C connection opened up to connections. = You could then say for example, 'EXEC SQL AT CONNECTION1 INSERT..." AND = "EXEC SQL at CONNECTION2 INSERT..." and commit them as a single = transaction.

I don't know if I would recommend it today. The application was written = close to 15 years ago. It was what was available at the time. =20

Ian MacGregor
Stanford Linear Accelerator Center

-----Original Message-----

From: =
[] On Behalf Of Alexander Gorbachev Sent: Monday, March 14, 2005 11:55 AM
Subject: Distributed transactions (two-phase commint) without DB links

Hi all,

We are facing the problem with design of a new application. Historically, we have been successful in pursuing our rules that DB links are not acceptable in our environment. Until now, we've managed to follow this rule and stay "link-free".

Developers of a new project reqire DB links. The problem is that project deadlines are very pressing and we might be forced to comply with their requirements for distributed transactions on the database tier. I don't think that there will be any TP monitor in use so probably no help from this side.

I have briefly reviewed Oracle documentation and found that there are some OCI functions for implementation of distributed transactions. As far as I understand it's possible to apply them on OCI client side (to be precise, I couldn't find that it's not possible so I assumed) so that a binary can open two sessions and commit globally.

I would be very interesting if someone could share any experince with that. White papers, feasibility, complexity, problems, etc.

To define the problem again:

We need a way to connect from application tier to two (or more) databases and perform global transaction with two-phase commit.

Thanks in advance!


Best regards,
Alex Gorbachev
-- Received on Mon Mar 14 2005 - 16:37:08 CST

Original text of this message