Ok--here's the scenario I've got:
1) Server-A: Windows NT-4 (SP6), SQL 2000 (no SPs)
2) Server-B: Windows 2003 Server, SQL 2000 (SP3)
2) Server-C: Windows 2000 Server, SQL 2000 (SP2)
Up until this past weekend, when Server-A was rebooted, I've had a few scheduled jobs on Server-B that did calls like this:
INSERT INTO #temptable SELECT ... FROM [Server-A].DB.dbo.table ....
All worked fine until this weekend, when we started getting these errors when running these calls:
Server: Msg 8501, Level 16, State 1, Procedure sp_call, Line 66
MSDTC on server 'Server-A' is unavailable.
Server: Msg 7391, Level 16, State 1, Procedure sp_call, Line 66
The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d01c].
[/color red]
As I said, both servers were running quite fine until Server-A was rebooted on Saturday. The server did not have any patches applied, etc. requiring the reboot (basically, the network guys said it was "doggish" at the console, so they rebooted it).
Interestingly, when making "SELECT" calls, without doing a local INSERT works fine (SELECT ... FROM [Server-A].DB.dbo.table returns the data--but using it as part of an insert generates the errors above). It only fails once we include the local (Server-B) table insert command.
I've verified that (1) DTC is running on both servers, (2) both servers can ping each other by name and IP, (3) Port 135 is open on both servers (the standard DTC issues I've found in my searches).
Adding a minor twist is this: I can do inserts from Server-A to Server-B tables (INSERT INTO [Server-B].DB.dbo.table ...) without problem! Also, Server-B can execute the same calls against Server-C that fail when using Server-A...
So, obviously there is a problem with Server-A, but I can't figure it out.
Any help would be greatly appreciated!
-Tim
1) Server-A: Windows NT-4 (SP6), SQL 2000 (no SPs)
2) Server-B: Windows 2003 Server, SQL 2000 (SP3)
2) Server-C: Windows 2000 Server, SQL 2000 (SP2)
Up until this past weekend, when Server-A was rebooted, I've had a few scheduled jobs on Server-B that did calls like this:
INSERT INTO #temptable SELECT ... FROM [Server-A].DB.dbo.table ....
All worked fine until this weekend, when we started getting these errors when running these calls:
Server: Msg 8501, Level 16, State 1, Procedure sp_call, Line 66
MSDTC on server 'Server-A' is unavailable.
Server: Msg 7391, Level 16, State 1, Procedure sp_call, Line 66
The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d01c].
[/color red]
As I said, both servers were running quite fine until Server-A was rebooted on Saturday. The server did not have any patches applied, etc. requiring the reboot (basically, the network guys said it was "doggish" at the console, so they rebooted it).
Interestingly, when making "SELECT" calls, without doing a local INSERT works fine (SELECT ... FROM [Server-A].DB.dbo.table returns the data--but using it as part of an insert generates the errors above). It only fails once we include the local (Server-B) table insert command.
I've verified that (1) DTC is running on both servers, (2) both servers can ping each other by name and IP, (3) Port 135 is open on both servers (the standard DTC issues I've found in my searches).
Adding a minor twist is this: I can do inserts from Server-A to Server-B tables (INSERT INTO [Server-B].DB.dbo.table ...) without problem! Also, Server-B can execute the same calls against Server-C that fail when using Server-A...
So, obviously there is a problem with Server-A, but I can't figure it out.
Any help would be greatly appreciated!
-Tim