Hello,
I am not sure if this is possible but in short. I have two SQL servers, one is a 'protected' server and the other is accessable via the internet. What I need is to be able to modify data in the protected server and send it to the internet visible server without explicity connecting to the protected server via ADO's, thus linked server and triggers.
So, data is modified in the proteceted server and sent to the internet visible server via a trigger and linked server setup.
THE PROBLEM: Some data needs to go the other way as well, without and explicit ADO connection. But, setting up a trigger and linked server in the other direction would cause an infinite loop of triggered updates.
MY SOLUTION: Create a buffer table in the internet visible server to recieve the data and trigger to update the protected server (via a link), once the protected server has been updated, it will via its own trigger update the proper table in the internet visible server. Right??? WRONG. The error I recieve is
Server: Msg 7391, Level 16, State 1, Procedure fnChangeData, Line 12
Operation cant be completed because OLE DB 'SQLOLEDB' doesn't handle distributed transactions
Server: Msg 3910, Level 16, State 1, Procedure fnChangeData, Line 12
Transaction context in use by another session.
YET, the triggers work fine once I remove the buffer trigger.
Is this architecture not possible???
Thanksd for any insight
Stefan
I am not sure if this is possible but in short. I have two SQL servers, one is a 'protected' server and the other is accessable via the internet. What I need is to be able to modify data in the protected server and send it to the internet visible server without explicity connecting to the protected server via ADO's, thus linked server and triggers.
So, data is modified in the proteceted server and sent to the internet visible server via a trigger and linked server setup.
THE PROBLEM: Some data needs to go the other way as well, without and explicit ADO connection. But, setting up a trigger and linked server in the other direction would cause an infinite loop of triggered updates.
MY SOLUTION: Create a buffer table in the internet visible server to recieve the data and trigger to update the protected server (via a link), once the protected server has been updated, it will via its own trigger update the proper table in the internet visible server. Right??? WRONG. The error I recieve is
Server: Msg 7391, Level 16, State 1, Procedure fnChangeData, Line 12
Operation cant be completed because OLE DB 'SQLOLEDB' doesn't handle distributed transactions
Server: Msg 3910, Level 16, State 1, Procedure fnChangeData, Line 12
Transaction context in use by another session.
YET, the triggers work fine once I remove the buffer trigger.
Is this architecture not possible???
Thanksd for any insight
Stefan