I am attempting to write an SQR (it will run from PeopleSoft) that updates a linked server. It fails with the following error:
(SQR 5528) ODBC SQL dbexec: SQLExecute error 7412 in cursor 2:
[Microsoft][SQL Native Client][SQL Server]OLE DB provider "SQLNCLI" for linked server "DUL41" returned message "No transaction is active.".
(SQR 5528) ODBC SQL dbexec: SQLExecute error 7391 in cursor 2:
[Microsoft][SQL Native Client][SQL Server]The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "DUL41" was unable to begin a distributed transaction.
Error on line 58:
(SQR 3735) Could not execute SQL.
SQR for PeopleSoft: Program Aborting.
-------------------- Details ------------------------------
- The code is simply doing a delete right now. delete from linkedserver.db.dbo.table where column = 1
- The SQL runs fine from Query Analyzer, so I think MSDTC must be setup correctly everywhere, and the linked servers must be defined correctly. My QA test is using the same ID (sa) as my SQR.
- If I just write a select statement in the SQR, it works fine.
- in this example, SQR is connecting via ODBC, using SQL Native Client driver.
------------------ Environment --------------------------
- Main server: Win2003, SQL2005sp2, active/passive cluster. MSDTC is setup on the cluster.
- Linked server: Win2003, SQL2000sp4, not a cluster. (I also tried a SQL2005 server just to test) This is the DUL41 server referenced in the error message. MSDTC is running.
- Everything is running from a different Win2003 box, that connects to the main server using ODBC/SQL Native client
Thanks for any help or ideas. Even any way to get better error messages, or a better way to test this.