거래가없는 방아쇠?


2

트랜잭션에없는 트리거를 만들 수 있습니까?

트리거를 사용하여 연결된 서버의 데이터를 업데이트하려고하지만 방화벽 문제로 인해 두 서버간에 분산 트랜잭션을 만들 수 없습니다.

2

아마도 연결된 서버에 대한 업데이트가 들어있는 큐와 큐에서 데이터를 읽고 원격 서버를 업데이트하는 프로세스가 필요합니다. 그런 다음 트리거는 정상 트랜잭션의 일부로 메시지를 큐에 삽입합니다. 이 데이터는 별도의 프로세스에서 읽고 원격 서버를 업데이트하는 데 사용됩니다. 프로세스 핸들 오류 (및 재 시도 가능성)에 논리가 필요합니다.

큐는 하나 이상의 테이블로 구현 될 수 있습니다.


2

저는 도움이되지 않는다는 것을 알고 있습니다. 따라서 아마도이 문제에 대해 downvoted가 될 것입니다. 그러나 실제로 해결책은 방화벽 문제를 해결하는 것입니다.

원격 연결 (연결되지 않은 서버) (요즘 선호되는 옵션이 아님)을 사용하면 SET REMOTE_PROC_TRANSACTIONS OFF를 사용하여 여기에 올바른 작업을 수행 할 원격 트랜잭션에 대한 DTC 사용을 막을 수 있습니다. 하지만 어쨌든 연결된 서버에서는 도움이되지 않을 것입니다.