siuf
asked on
SQL Server 2005 - Oracle 10g Distributed Transaction Error 7391
Hello
I'm trying to run a simple transaction from SQL Server 2005 to an Oracle 10g Linked Server:
BEGIN DISTRIBUTED TRANSACTION
SELECT COUNT(*) FROM FAC_DRP..DROITPROD.HOR_SES SION
COMMIT TRAN
And I get this error:
Msg 7391, Level 16, State 2, Line 5
The operation could not be performed because OLE DB provider "MSDAORA" for linked server "FAC_DRP" was unable to begin a distributed transaction.
The Select statement alone works fine. The MSDTC service is running on the cluster node where SQL Server is running. I've read many posts, but I did not find any solution. Any hint would be welcome, thanks.
Pierrot
I'm trying to run a simple transaction from SQL Server 2005 to an Oracle 10g Linked Server:
BEGIN DISTRIBUTED TRANSACTION
SELECT COUNT(*) FROM FAC_DRP..DROITPROD.HOR_SES
COMMIT TRAN
And I get this error:
Msg 7391, Level 16, State 2, Line 5
The operation could not be performed because OLE DB provider "MSDAORA" for linked server "FAC_DRP" was unable to begin a distributed transaction.
The Select statement alone works fine. The MSDTC service is running on the cluster node where SQL Server is running. I've read many posts, but I did not find any solution. Any hint would be welcome, thanks.
Pierrot
ASKER
What do you mean when you say "Check whether MSDTC is enabled or not on both machines" ? The Oracle server is a Linux one (Red Hat 3), there is no MSDTC afaik.
Yes you are correct. In Oracle on Linux Platform doesn't has MSDTC.
But make sure that in your Windows machine, MSDTC service is up and running.
Disable Firewall and test it once from SQL Server
But make sure that in your Windows machine, MSDTC service is up and running.
Disable Firewall and test it once from SQL Server
ASKER
OK, I configured the MSDTC as described at http://support.microsoft.com/kb/839279, the firewall is disabled on the SQL Server machine. But the Oracle one is behind a firewall and I don't know what port to open, because the Select statement alone works fine. Just when I add BEGIN TRAN/COMMIT TRAN I get the error 7391.
Just open up the ports 135 for MSDTC in both machines.
TCP port 1433 and UDP Port 1434 needs to be opened in both the machines.
TCP port 1433 and UDP Port 1434 needs to be opened in both the machines.
ASKER
The firewall is disabled on the SQL Server machine, and we opened all from this machine to the Oracle server, but no chance, still the same message.
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
Further info on MSDTC configurations here:
http://support.microsoft.com/kb/839279
Exclude TCP port 135 on both the machines Firewall
Kindly disable Firewall Service on both the Machines and Try issuing the query again.
This should work