View Single Post

   
  #3 (permalink)  
Old 02-28-2008, 07:42 PM
Hank
 
Posts: n/a
Default Re: Problem with triggers between linked servers

sql@hayes.ch (Simon Hayes) wrote in message news:<60cd0137.0311070236.7bb3adc2@posting.google. com>...
>
> Check this KB article, which gives a lot of detail on troubleshooting
> that error. The most common issues seem to be that MSDTC isn't
> running, or that there is a firewall between the servers.
>
> http://support.microsoft.com/default...&Product=sql2k
>
> Simon



Thanks for your input Simon.

MSDTC does not appear to be a problem. It is running on both
machines, and I can perform distributed transactions with no problem.
I can insert/update/delete linked server tables using four-part names
with no problem. Even the triggers between linked servers work fine,
as long as there are no recursive references in the trigger code,
regardless of whether the statement that causes the recursion gets
executed.

I also checked the troubleshooting link you sent.
- pingtest.bat runs fine on both machines
- both machines are using TCP/IP only
- transactions are not timing out because I can modify data using DTC
and linked servers with no problem when I'm not using triggers that
contain recursive references

The point in my original post that brought me here is the fact that I
get the error even if the recursive statement (the INSERT) doesn't get
executed. I thought this wouldn't be a problem, seeing as SQL Server
supports a server setting for 'nested triggers' which I've set to 1 on
both machines (and RECONFIGURE'd).

I first need to determine if what I'm doing is even supported. I've
searched BOL fairly extensively and all indications are that there
should be no problem. Additionally, I was hoping someone might
understand how SQL Server is compiling/executing this logic at the low
level, to better understand why the server, when executing a trigger,
even bothers looking at statements that don't get executed (i.e. the
false conditions of IF blocks).

Thanks again,
-Hank
Reply With Quote