문제

트랜잭션에 포함되지 않는 트리거를 생성할 수 있습니까?

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

도움이 되었습니까?

해결책

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

대기열은 하나 이상의 테이블로 구현될 수 있습니다.

다른 팁

도움이 되지 않는다는 것을 알고 있으므로 반대 투표를 받을 수도 있지만 실제로 해결책은 방화벽 문제를 해결하는 것입니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top