0

Can someone help me to troubleshoot this error?

Error:OLE DB provider "SQLNCLI11" for linked server "TESTSERV" returned message "No transaction is active.". Msg 7391, Level 16, State 2, Line 7 The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "TESTSERV" was unable to begin a distributed transaction.

I am getting the error executing the code below.

CREATE TABLE #Drive
(
    drive char(1) Primary Key,
    freespace int null
)

Insert into #Drive
EXEC TESTSERV.MASTER.xp_fixedDrives

I've already done the following set up:

Allow Remote Clients
Allow Outbound

On Security tab of Local DTC Properties in Component Services:

  1. Go To Run, type comexp.msc.
  2. Double click "Console Root".
  3. Double click "Component Services.
  4. Double click "Computers".
  5. Double click "My Computer".
  6. Double click "Distributed Transaction Coordinator".
  7. Right click "Local DTC" under "Distributed Transaction Coordinator", and click properties.
  8. Click the "Security" tab.
  9. Put tick marks on the checkboxes "Allow Remote Clients" and "Allow Outbound".

Still not fixed.
Different clone is used here for remote machine.

4
  • After you made the DTC changes, did you restart the DTC service? You may also find some helpful information about How to troubleshoot connectivity issues in MS DTC by using the DTCPing tool Oct 23, 2017 at 13:16
  • Also - the DTC service is running on both servers, and is properly set up on both - correct?
    – RDFozz
    Oct 23, 2017 at 21:32
  • Thanks for looking into the issue. Yes i restarted the services after made the DTC changes in both the server but no luck. Oct 24, 2017 at 10:36
  • Have you looked at linked server properties, to see if remote calls, EnablePromotionTransaction Coordinator enabled.
    – Dina
    Apr 20, 2018 at 23:52

1 Answer 1

0

Map a specific instance of SQL Server to a specific instance of MSDTC?

To map a SQL Server instance to an instance of MSDTC, open an administrative command prompt and use the msdtc.exe command.

The following command is used to create a mapping between an instance of SQL Server and an instance of MSDTC.

msdtc -tmMappingSet -name <MappingName> -service <SQLServerServiceName> ^
-ClusterResourceName <MSDTCResourceName>

https://blogs.msdn.microsoft.com/alwaysonpro/2014/01/15/msdtc-recommendations-on-sql-failover-cluster/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.