Link to home
Start Free TrialLog in
Avatar of konge
konge

asked on

Distributed Transaction

Dear Expert,
                 I have to access Oracle DB from MS SQL Server 2000.
My OS is Win2k adv server 2000 sp3.

I connect the Oracle Server with Link Server Technology of MS SQL Server.
I use OraOLEDB.Oracle driver.

The code is

SET XACT_ABORT ON
BEGIN DISTRIBUTED TRANSACTION

insert into openquery(kn,'select * from customer_info') values ('cust0005','customer 5')

COMMIT

where kn is Oracle service name and schema name.

When the code is run, following error occurs.

The operation could not be performed because the OLE DB provider 'OraOLEDB.Oracle' was unable to begin a distributed transaction.

OLE DB error trace [OLE/DB Provider 'OraOLEDB.Oracle' ITransactionJoin::JoinTransaction returned 0x8004d00a].


I already start the MSDTC service and RPC service.

Yours'
konge
ASKER CERTIFIED SOLUTION
Avatar of danblake
danblake

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of danblake
danblake

Specifically....

Troubleshooting Oracle Linked Server:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;280106


Error 7391: The operation could not be performed because the OLE DB provider 'MSDAORA' does not support distributed transactions. OLE DB error trace [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]
Check if the OCI versions are registered correctly as described earlier in this article.


Also a new driver is available here:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;244661 for Oracle 9i.
Could I ask, why does this get a grade C ??