2012-08-03 4 views
1

방금 ​​아주 기본적인 트리거를 만들기 위해 SQL-CLR을 사용하기 시작했습니다 ...하지만 다른 질문을 "팝업"했습니다 ... 어쨌든 SQL- 트리거를 사용하여 웹 - 응용 프로그램? .. 내 첫 번째 아이디어는 SQL-CLR이 호출 한 웹 응용 프로그램에있는 웹 서비스를 사용하는 것이 었습니다. 전체 아이디어는 트리거가 트리거되면 "호출됩니다."라고합니다. 그런 다음 데이터베이스에 발생한 일에 대해 클라이언트에게 알리는 SignalR-hub .. 모든 것이 나를 위해 실험적입니다 .. 이유는 내가 웹 서비스 방식으로 사용할 수 없기 때문입니다. 방아쇠가 트리거 될 때마다 요청하십시오.웹 응용 프로그램의 CLR 트리거?

답변

4

트리거로부터 HTTP 호출을하지 마십시오. 이러한 커플 링을 도입하면 성능이 저하되고 가용성이 떨어지며 대기 시간이 늘어나고 시스템이 매우 취약 해집니다 (HTTP 오류로 인해 트랜잭션 오류가 발생하는 트리거 오류가 발생 함).

대신 HTTP 호출을 트리거에서 분리하십시오. 트리거에서 queue에 호출을 요청하고 대기열을 모니터링하는 외부 프로세스에서 HTTP 요청을 수행하십시오.

데이터베이스 변경 사항을 모니터링하는 시스템은 라이브 변경시 Query Notification이고 연결이 끊어진 시스템 인 경우 Change Tracking입니다.

+0

대기열에 대해 설명 한 내용을 더 읽을 수있는 예제 사이트가 있습니까? 감사합니다. – Inx

+0

오! .. 그리고 잘 .. 달성하려고하는 것은 내가 추가 요청이 필요 없다는 것입니다. 단순히 웹 서비스 나 폼이 필요없이 웹 응용 프로그램에서 함수를 실행할 트리거를 원합니다. HTTP 요청의 .. 잘 모르겠다면 .. :) 잘 .. :) – Inx

+0

이제 대기열을 얻게됩니다 .. 대기열을 읽고 HTTP 요청을 수행하는 추가 응용 프로그램과 같은 방법을 사용할 수 있습니다. 인스턴스 Windows 서비스 .. – Inx