Cross-Server MS SQL RPC call works but fails when posting data into a table?
Posted on 2011-09-09
I have a Stored Procedure that selects data from a remote SQL Server, and inserts this data into a temporary table. I then step through the temp table to update the local server.
When I run the Select * From [RemoteDB].[Table] there is a long (10 second) delay, and my network card utilisation hits 100%.
So I put the Select into a Stored Brocedure on the remote server, and run EXEC [RemoteDB].[SP]. The results return immediately, and network utilisation is low.
BUT when I try:
INSERT INTO [LocalTable]
I get the error below:
OLE DB provider "SQLNCLI10" for linked server "SERVERNAME" returned message "The partner transaction manager has disabled its support for remote/network transactions.".
Msg 7391, Level 16, State 2, Line 28
The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "SERVERNAME" was unable to begin a distributed transaction.
I have checked MSDTC is running on the remote server.
Please could someone cast light on overcoming this.
Other relevent info; the servers are stand-alone (no domain). Both are running Win 2k8 (the local server is Standard and the remove R2). SQL is running using the same username on both servers (with the same password). The machines are physically next to each other on the same switch.