Jump to content

“Unable to enlist in the transaction” with Oracle linked server from MS SQL Server

We have a setup where we use MS SQL Server with a linked Oracle server. Our database has views on the Oracle database. We have in-house written software (I'm the lead developer) which uses this setup.
 

We've had this setup for 5 years and it's working fine in production, on a beta server and all our development boxes, except mine.
 

I recently rebuilt my machine using Windows 10 (I'm the first using Windows 10 for this). I'm using the Oracle Database 12c Release 1 (12.1.0.2.0) client (we previously used 11g, but Windows 10 appears to require 12c).
 

When I try to perform an update against a view on the Oracle server, within a transaction, it fails. This works fine on any of our other servers, so I'm sure it's either a Windows 10 issue, Oracle 12c client issue, or I've somehow messed up the setup.
 

I've done all the setups in the past (production, beta, and all developer machine setups), so I have quite a bit of experience doing this over the years. The problem is only with a transaction. Non-transactional queries and updates work just fine. Here's an example that will fail.

begin tran
SET XACT_ABORT ON;
update CLIENT set SUPERVISOR_FLAG = 'Y' where CLIENT_CODE = 'XYZ123'
commit tran

The error I get is:

OLE DB provider "OraOLEDB.Oracle" for linked server "REMOTESERVER" returned message "Unable to enlist in the transaction.".
Msg 7391, Level 16, State 2, Line 2
The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" for linked server "REMOTESERVER" was unable to begin a distributed transaction.

Multiple SQL Servers link to the same back-end Oracle server and they have no problem with this, so I can rule out a configuration issue on the Oracle server.

These are my DTC settings and these are the same as other machines that are working:

[Image attachment]

 

For my Oracle Provider for Ole DB (OraOLEDB.Oracle) settings, I have "Dynamic parameters", "Nested queries", "Allow inprocess" and "Supports 'Like' operator" enabled. This is also the same as other machines.

Under Server Options the settings are:

  • Collation Compatible - False
  • Data Access - True
  • RPC- True
  • RPC Out - True
  • Use Remote Collation - True
  • Collation name - [blank]
  • Connection Timeout - 0
  • Query Timeout - 0
  • Distributor - False
  • Publisher - False
  • Subscriber - False
  • Lazy Schema Validation - False
  • Enable Promotion of Distributed Transactions - True

Again, these match the settings on other working servers.

I'm stumped. I'd really appreciate any help anyone can offer on this.

 

Thanks & Regards

Camillelola

gv1Vi.png

Link to comment
Share on other sites

Link to post
Share on other sites

-- Moved to the Servers subforum --

CPU: AMD Ryzen 7 5800X3D GPU: AMD Radeon RX 6900 XT 16GB GDDR6 Motherboard: MSI PRESTIGE X570 CREATION
AIO: Corsair H150i Pro RAM: Corsair Dominator Platinum RGB 32GB 3600MHz DDR4 Case: Lian Li PC-O11 Dynamic PSU: Corsair RM850x White

Link to comment
Share on other sites

Link to post
Share on other sites

Probably not the best forum to ask this sort of question, there are dedicated/more focused SQL forums out there.

Link to comment
Share on other sites

Link to post
Share on other sites

Have you allowed port 135 and the DCOM ports in your firewall for MS DTC traffic?

You might also want to try the DTCping tool: https://blogs.msdn.microsoft.com/distributedservices/2008/11/12/troubleshooting-msdtc-issues-with-the-dtcping-tool/

Spoiler

Desktop: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

Server: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM850v2 PSU | Fractal S36 Triple AIO | 12 x 8TB HGST Ultrastar He10 (WD Whitelabel) | 500GB Aorus Gen4 NVMe | 2 x 2TB Samsung 970 Evo Plus NVMe | LSI 9211-8i HBA

 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×