Forum Stats

  • 3,769,586 Users
  • 2,252,984 Discussions
  • 7,875,109 Comments

Discussions

Since upgrade to Windows 10/12c client, I get: Unable to begin a distributed transaction

We use distributed transactions in our code. We have an MS SQL Server with views on an Oracle database. We sometimes perform transactions across the servers

Our machines were previously set up with Windows 7 and the Oracle 11g client. They were recently rebuilt with the Windows 10 and the 12c client and since that happened, distributed transactions have stopped working. We get the message: "The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" for linked server "[dbname]" was unable to begin a distributed transaction."

This application (and the code being called, in particular) has been in production for 5 years without issue. This is only happening on the two new development machines that are using Windows 10 and the 12c client. No other machines are using Windows 10 or the 12c client.

I installed the 12c client much like I've been installing previous clients over the years, using admin install, using a directory name other than the default, but otherwise nothing else is changed.

I can easily reproduce it in SQL Server Management Studio by executing:

BEGIN TRAN

UPDATE [SomeViewOnOracleTable] set www = 'xxx' where yyy = 'zzz'

COMMIT TRAN

I will get the above error message.

Our MSDTC settings are the same that they've always been, with the following items checked:

Network DTC Access

Allow Remote Clients

Allow Inbound

Allow Outbound

No Authentication Required

Enable XA Transactions

Enable SNA LU 6.2 Transactions

There are other instances of Windows 7 that have the linked server set to the same Oracle database that we're using and they do not have this issue, so the issue is very specific to Windows 10 and/or Oracle 12c drivers.

Is there some setting in the oracle driver that's different from previous versions that we can fix?

This discussion has been closed.