SQL 어댑터를 사용하여 SQL Server 폴링
SQL Server용 Microsoft BizTalk 어댑터를 사용하면 어댑터 클라이언트가 SQL Server 데이터베이스에서 데이터 변경 메시지를 받을 수 있습니다. SQL 어댑터는 어댑터가 지정된 SQL 문(SELECT 문 또는 저장 프로시저)을 실행하고, 데이터를 검색하거나 업데이트하고, 정기적으로 어댑터 클라이언트에 결과를 제공하는 "폴링 기반" 메시지 수신을 지원합니다.
SQL 어댑터는 폴링에 대해 다음 작업을 노출합니다.
폴링: SQL Server 테이블 또는 뷰에 대한 주기적인 데이터 변경 메시지를 받을 수 있습니다. 메시지는 강력한 형식이 아닙니다.
TypedPolling: SQL Server 데이터베이스에서 강력한 형식의 메시지를 받을 수 있습니다. 폴링 메시지의 요소를 다른 스키마에 매핑하려면 이 작업을 사용해야 합니다.
XmlPolling. FOR XML 절을 사용하고 데이터를 XML 메시지로 반환하는 SELECT 문 또는 저장 프로시저를 사용할 수 있습니다. 이 작업은 폴링 메시지를 XML 메시지로 반환합니다.
FOR XML 절에 대한 자세한 내용은 를 참조하세요 https://go.microsoft.com/fwlink/?LinkId=131402.
SQL 어댑터의 폴링에 대한 자세한 내용은 BizTalk Server 사용하여 SQL Server 폴링 기반 데이터 변경 메시지 받기를 참조하세요.
폴링
SQL 어댑터를 사용하는 일반적인 폴링 작업에는 다음이 포함됩니다.
어댑터 클라이언트는 InboundOperationType 바인딩 속성에서 인바운드 작업으로 지정
Polling
해야 합니다. 이 바인딩 속성의 기본값은 입니다Polling
.어댑터 클라이언트는 폴링에 사용할 수 있는 데이터가 있는지 여부를 결정하는 PolledDataAvailableStatement 바인딩 속성에 대한 SQL 문을 지정해야 합니다. 이 문을 실행할 때 반환된 첫 번째 결과 집합의 첫 번째 행에 있는 첫 번째 열에는 정수 값이 포함됩니다. 폴링에 사용할 수 있는 데이터가 없으면 반환 값은 0입니다. 사용 가능한 데이터가 있는 경우 반환 값이 0보다 큽니다.
어댑터 클라이언트는 PolledDataAvailableStatement 바인딩 속성의 문이 실행되는 간격을 정의하려면 PollingIntervalInSeconds 바인딩 속성에 대한 폴링 간격을 지정해야 합니다. 모든 폴링 간격이 끝나면 폴링된 데이터 사용 가능한 문이 실행되고 결과 집합이 반환됩니다.
어댑터 클라이언트는 PollingStatement 바인딩 속성에 대해 폴링 SQL 문(SELECT 문 또는 저장 프로시저)을 지정해야 합니다. 폴링에 사용할 수 있는 데이터(PolledDataAvailableStatement 바인딩 속성에 의해 결정됨)가 있는 경우 어댑터는 폴링 문을 실행하여 SQL Server 데이터베이스의 데이터를 가져오고 업데이트합니다(해당하는 경우). SQL 어댑터가 BizTalk Server 함께 사용되는 경우 BizTalk Server 메시지를 제출하는 데도 동일한 트랜잭션이 사용됩니다.
어댑터 클라이언트는 PollWhileDataFound 바인딩 속성을 사용하여 폴링 간격을 무시하고 사용 가능한 경우 데이터를 지속적으로 폴링할 수 있습니다.
폴링 문을 실행한 결과로 반환되는 결과 집합은 어댑터 클라이언트에 인바운드 메시지로 전송됩니다.
참고
UseAmbientTransaction을 False로 설정하면 PolledDataAvailableStatement가 호출되지 않습니다. 대신 어댑터는 PollingStatement를 직접 호출합니다.
참고
XmlPolling 작업에는 폴링 작업과 동일한 단계가 포함됩니다.
Strongly-Typed 폴링
SQL 어댑터를 사용하는 일반적인 강력한 형식의 폴링 작업에는 다음이 포함됩니다.
어댑터 클라이언트는 InboundOperationType 바인딩 속성에서 인바운드 작업으로 지정
TypedPolling
해야 합니다. 이 바인딩 속성의 기본값은 입니다Polling
.어댑터 클라이언트는 연결 URI의 일부로 인바운드 ID를 지정해야 합니다. 인바운드 ID는 모든 문자열일 수 있으며 네임스페이스 충돌을 방지하기 위해 TypedPolling 작업의 표준 네임스페이스에 추가됩니다.
나머지 단계는 이전 섹션에 설명된 폴링 작업에 나열된 2~6단계와 동일합니다.
폴링 및 강력한 형식의 폴링과 관련된 바인딩 속성에 대한 자세한 내용은 SQL Server 어댑터 바인딩 속성에 대한 BizTalk 어댑터에 대해 읽어보세요.
참고
폴링 문을 실행한 결과로 여러 결과 집합을 반환할 수 있습니다. 결과 집합에 행이 없으면 어댑터 클라이언트로 메시지가 전송되지 않습니다.
아래 그림에서는 SQL 어댑터의 폴링 워크플로에 대한 정보를 제공합니다. 폴링 워크플로에 대한 두 가지 시나리오가 설명되어 있습니다.
PollWhileDataFound 값이 "False"(기본 설정)로 설정된 경우
PollWhileDataFound의 값이 "True"로 설정된 경우
폴링과 쿼리 알림의 차이점
폴링 및 쿼리 알림은 모두 인바운드 작업이며 어댑터 클라이언트에 SQL Server 데이터베이스의 데이터 변경 내용을 알릴 수 있지만 다음 표에서는 둘 사이의 몇 가지 차이점을 나열합니다. 다음 차이점은 요구 사항에 따라 작업을 결정하는 데 도움이 됩니다.
폴링 | 쿼리 알림 |
---|---|
폴링은 어댑터에 의해 시작됩니다. 어댑터는 문을 실행하여 데이터를 폴링에 사용할 수 있는지 여부를 확인하고 폴링에 사용할 수 있는 데이터가 있는 경우 폴링 문을 실행하여 폴링을 시작합니다. | 쿼리 알림은 SQL Server 시작합니다. 어댑터에서 발급한 알림 문은 문의 결과 집합이 변경된 경우 데이터베이스에 알림을 시작하도록 지시합니다. |
폴링 문을 사용하여 SQL Server 데이터베이스 테이블에서 데이터를 읽거나 업데이트할 수 있습니다. | 쿼리 알림 문을 사용하여 SQL Server 데이터베이스 테이블의 데이터만 읽을 수 있습니다. |
폴링은 변경된 실제 데이터를 알려줍니다. | 쿼리 알림은 삽입, 업데이트 및 삭제와 같은 데이터의 변경 유형에 대해서만 알려줍니다. |
데이터 변경 알림은 폴링 간격에 따라 달라지고 어댑터 클라이언트는 모든 폴링 간격이 끝날 때 데이터 변경 내용에 대해 알 수 있습니다. 팁: 폴링은 데이터 변경이 지속적으로 발생하는 시나리오에서 더 나은 처리량을 제공할 수 있으며, 각 변경 내용에 대한 알림을 언제와 같이 알리고 싶지 않을 수 있습니다. 대신 마지막 데이터 변경 알림 이후 발생한 모든 변경 내용에 대한 알림을 받을 폴링 간격을 지정합니다. | 데이터 변경 알림은 즉각적입니다. |
microsoft BizTalk Adapter for SQL Server 쿼리 알림에 대한 자세한 내용은 BizTalk Server 사용하여 SQL 쿼리 알림 받기를 참조하세요.