다음을 통해 공유


SQL Server 어댑터 바인딩 속성용 BizTalk 어댑터에 대해 읽어보세요.

SQL Server용 Microsoft BizTalk 어댑터는 여러 바인딩 속성을 표시합니다. 이러한 속성을 설정하여 어댑터의 동작 중 일부를 제어할 수 있습니다. 이 섹션에서는 SQL 어댑터에 의해 노출되는 바인딩 속성에 대해 설명합니다. 또한 .NET 프로그래밍을 사용하거나 BizTalk Server 실제 포트 바인딩에서 속성을 설정하여 액세스할 수 있는 방법을 보여 있습니다.

어댑터 바인딩 속성

다음 표에서는 범주별로 그룹화된 SQL 어댑터 바인딩 속성을 보여줍니다. 범주는 각 바인딩 속성이 어댑터(또는 바인딩)를 구성하기 위해 다른 애플리케이션에서 제공하는 대화 상자에 표시되는 노드를 나타냅니다.

XmlStoredProcedureRootNodeName

범주: FOR XML
설명: SELECT 문에 FOR XML 절이 있는 저장 프로시저의 응답 스키마에 대한 루트 노드의 이름을 지정합니다. 이 루트 노드는 이러한 저장 프로시저를 실행한 후 SQL Server 받은 XML 응답을 캡슐화합니다. BizTalk Server 사용하여 SQL Server 저장 프로시저 실행 항목에 설명된 대로 이 루트 노드를 응답 스키마에 추가해야 합니다.

중요

FOR XML 절을 사용하여 저장 프로시저를 실행하는 동안 이 바인딩 속성을 설정해야 합니다.

.NET 형식: 문자열

XmlStoredProcedureRootNodeNamespace

범주: FOR XML
설명: SELECT 문에 FOR XML 절이 있는 저장 프로시저의 응답 스키마에 대한 루트 노드의 대상 네임스페이스를 지정합니다.
.NET 형식: 문자열

CloseTimeout

범주: 일반
설명: WCF 연결 닫기 시간 제한입니다. 기본값은 1분입니다.
.NET 형식: System.TimeSpan

Name

범주: 일반
설명: WCF 클라이언트 클래스를 보유하기 위해 어댑터 서비스 참조 Visual Studio 플러그 인 추가에서 생성된 파일의 이름을 반환하는 읽기 전용 값입니다. 어댑터 서비스 참조 플러그 인 추가는 Name 속성 값에 "Client"를 추가하여 파일 이름을 형성합니다. 이 속성의 기본값은 "SqlAdapterBinding"입니다. 이 값에 대해 생성된 파일의 이름은 "SqlAdapterBindingClient"로 지정됩니다.
.NET 형식: 문자열

OpenTimeout

범주: 일반
설명: WCF 연결 열기 시간 제한을 지정합니다. 기본값은 1분입니다.

중요

SQL 어댑터는 항상 OpenTimeout을 사용하여 SQL Server 연결을 열 때 연결 열기 시간 제한을 설정합니다. 어댑터는 통신 개체를 열 때 전달된 모든 시간 제한(System.TimeSpan) 매개 변수를 무시합니다. 예를 들어 어댑터는 채널을 열 때 전달된 시간 제한 매개 변수를 무시합니다.

.NET 형식: System.TimeSpan

ReceiveTimeout

범주: 일반
설명: WCF 메시지 수신 시간 제한을 지정합니다. 기본적으로 이는 어댑터가 인바운드 메시지를 기다리는 최대 시간을 의미합니다. 기본값은 10분입니다.

중요

폴링과 같은 인바운드 작업의 경우 시간 제한을 가능한 최대 값(24.20:31:23.64700000(24일)으로 설정하는 것이 좋습니다. BizTalk Server 어댑터를 사용하는 경우 시간 제한을 큰 값으로 설정해도 어댑터의 기능에 영향을 주지 않습니다.

.NET 형식: System.TimeSpan

SendTimeout

범주: 일반
설명: WCF 메시지 보내기 시간 제한을 지정합니다. 기본값은 1분입니다.
.NET 형식: System.TimeSpan

EnableBizTalkCompatibilityMode

범주: BizTalk
설명: 어댑터가 BizTalk Server 또는 .NET 애플리케이션과 함께 사용되는지 여부를 나타냅니다.

  • BizTalk Server 어댑터를 사용하거나 BizTalk 프로젝트에서 어댑터를 사용하여 SQL Server 작업에 대한 메타데이터를 생성하는 경우 항상 속성을 True로 설정해야 합니다. 이렇게 하면 System.Data.DataSet에 대해 생성된 스키마가 BizTalk Server 호환되는 형식이 됩니다. 그렇지 않으면 BizTalk 프로젝트가 컴파일되지 않습니다.
  • .NET 애플리케이션에서 Visual Studio의 어댑터를 사용하는 경우 응답을 DataSet으로 사용하려면 속성을 False 로 설정해야 합니다. 이렇게 하면 System.Data.DataSet에 대해 생성된 스키마가 WCF DataContractSerializer와 호환되는 형식이 됩니다.

.NET 형식: bool(System.Boolean)

BatchSize

범주: 버퍼링
설명: SQL Server 데이터베이스의 테이블 또는 뷰에서 여러 레코드 삽입, 업데이트 및 삭제 작업의 일괄 처리 크기를 지정합니다. 기본값은 20입니다. BatchSize 값이 1보다 큰 경우 SQL 어댑터는 지정된 수의 레코드를 단일 호출로 일괄 처리합니다. 값이 높을수록 성능이 향상될 수 있지만 메모리 소비에 영향을 줍니다.
.NET 형식: int(System.Int32)

ChunkSize

범주: 버퍼링
설명: column_name> 설정<작업에 사용되는 버퍼 크기를 지정합니다. 기본값은 4194304 바이트입니다. 값이 높을수록 성능이 향상될 수 있지만 메모리 소비에 영향을 줍니다.

.NET 형식: int(System.Int32)

Encrypt

범주: 연결
설명: 유효한 인증서가 설치된 SQL Server SQL Server 클라이언트 간의 모든 데이터 전송에 SSL 암호화를 사용할지 여부를 지정합니다. 기본값은 false입니다.
.NET 형식: bool(System.Boolean)

MaxConnectionPoolSize

범주: 연결 설명: 특정 연결 문자열 대한 연결 풀에서 허용되는 최대 연결 수를 지정합니다. 기본값은 100입니다. 이 속성은 성능 튜닝에 사용됩니다.

중요

MaxConnectionPoolSize를 신중하게 설정해야 합니다. 이 값이 너무 크게 설정된 경우 사용 가능한 연결 수를 소진할 수 있습니다.

.NET 형식: int(System.Int32)

WorkstationId

범주: 연결
설명: SQL 어댑터를 사용하여 SQL Server 데이터베이스에 연결하는 워크스테이션(클라이언트 컴퓨터)의 고유 ID를 지정합니다. 이 바인딩 속성의 값(지정된 경우)은 SqlConnection.ConnectionString 속성의 워크스테이션 ID 키워드(keyword) 사용됩니다. 자세한 내용은 SqlConnection.ConnectionString 속성을 참조하세요.
.NET 형식: 문자열

EnablePerformanceCounters

범주: 진단
설명: WCF LOB 어댑터 SDK 성능 카운터 및 SQL 어댑터 LOB 대기 시간 성능 카운터를 사용할지 여부를 지정합니다. 기본값은 False입니다. 성능 카운터를 사용할 수 없습니다. LOB 대기 시간 성능 카운터는 SQL 어댑터가 SQL Server 데이터베이스를 호출하는 데 소요된 총 시간을 측정합니다.

SQL 어댑터의 성능 카운터에 대한 자세한 내용은 SQL 어 댑터와 함께 성능 카운터 사용을 참조하세요.
.NET 형식: int(System.Int32)

InboundOperationType

범주: 인바운드
설명: 폴링, TypedPolling, XmlPolling 또는 알림 인바운드 작업을 수행할지 여부를 지정합니다. 기본값은 폴링입니다.

폴링, TypedPollingXmlPolling에 대한 자세한 내용은 폴링 지원을 참조하세요. 알림에 대한 자세한 내용은 SQL 어댑터를 사용하여 쿼리 알림 수신 고려 사항을 참조하세요.
.NET 형식: 열거형

UseDatabaseNameInXsdNamespace

범주: 메타데이터
설명: 특정 아티팩트용으로 생성된 XSD에 데이터베이스 이름이 포함되어 있는지 여부를 지정합니다. 데이터베이스 이름을 포함하려면 이를 True 로 설정합니다. 그렇지 않으면 False로 설정합니다. 기본값은 False입니다.

이는 단일 애플리케이션이 서로 다른 데이터베이스에서 다른 메타데이터를 사용하여 동일하게 명명된 아티팩트에서 작업을 실행하려는 시나리오에서 유용합니다. 네임스페이스에 데이터베이스 이름이 없으면 생성된 메타데이터가 충돌합니다. 이 바인딩 속성을 설정하여 네임스페이스에 데이터베이스 이름을 포함할 수 있으므로 고유하게 만들 수 있습니다. 다음은 네임스페이스의 변경 내용을 강조 표시하는 예제입니다.

UseDatabaseNameInXsdNamespace = False
http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee

UseDatabaseNameInXsdNamespace = True
http://schemas.microsoft.com/Sql/2008/05/TableOp/MyDatabase/dbo/Employee

바인딩 속성이 True로 설정된 경우 데이터베이스 이름이 네임스페이스에 포함됩니다.

.NET 형식: 열거형

AllowIdentityInsert

범주: 기타
설명: 삽입 및 업데이트 작업 중에 어댑터가 ID 열에 대한 값을 삽입할 수 있는지 여부를 지정합니다. ID 열에 대한 값을 삽입하거나 업데이트하려면 이 속성을 True 로 설정합니다. 그렇지 않으면 False (기본값)로 설정합니다.

참고

이 속성을 True 로 설정하면 를 사용하여 SET IDENTITY_INSERT <table_name> ON어댑터로 변환됩니다. 자세한 내용은 SET IDENTITY_INSERT(Transact-SQL)를 참조하세요.

이 바인딩 속성을 사용하는 동안 다음 사항을 고려해야 합니다.

  • 어댑터는 ID 열에 대해 전달하는 값의 유효성을 검사하지 않습니다. 예를 들어 테이블에 "ID 시드"가 100으로 설정되고 "ID 증가"가 1로 설정된 ID 열이 있고 어댑터 클라이언트가 ID 열에 대해 95라는 값을 전달하는 경우 어댑터는 이 값을 SQL Server 전달합니다.
  • AllowIdentityInsertTrue로 설정하더라도 어댑터 클라이언트가 요청 메시지의 ID 열에 대한 값을 지정하는 것은 필수가 아닙니다. ID 열에 대한 값이 있는 경우 어댑터는 이를 SQL Server 전달합니다. 값이 없으면 SQL Server ID 열의 사양에 따라 값을 삽입합니다.

.NET 형식: bool(System.Boolean)

NotificationStatement

범주: 알림(인바운드)
설명: SQL Server 알림에 등록하는 데 사용되는 SQL 문(SELECT 또는 EXEC <저장 프로시저>)을 지정합니다. 다음 SELECT 문과 같이 문에 열 이름을 구체적으로 입력해야 합니다.

SELECT Employee_ID,Designation FROM dbo.Employee WHERE Status=0

참고

스키마 이름과 함께 데이터베이스 개체 이름을 지정해야 합니다. 예: dbo.Employee.

어댑터는 지정된 SQL 문에 대한 결과 집합이 변경될 때만 SQL Server 알림 메시지를 가져옵니다.

.NET 형식: 문자열

NotifyOnListenerStart

범주: 알림(인바운드)
설명: 어댑터가 수신기가 시작될 때 수신 위치가 실행 중임을 알리는 알림 메시지를 어댑터 클라이언트에 보낼지 여부를 지정합니다. 기본값은 True입니다.

수신하는 알림 메시지는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8" ?>
 <Notification xmlns="http://schemas.microsoft.com/Sql/2008/05/Notification/">
   <Info>ListenerStarted</Info>
    <Source>SqlBinding</Source>
    <Type>Startup</Type>
  </Notification>

.NET 형식: bool(System.Boolean)

PolledDataAvailableStatement

범주: 폴링(인바운드)
설명: 실행된 SQL 문을 지정하여 SQL Server 데이터베이스의 특정 테이블에 대한 폴링에 데이터를 사용할 수 있는지 여부를 확인합니다. 지정된 문은 행과 열로 구성된 결과 집합을 반환해야 합니다. 결과 집합의 첫 번째 셀에 있는 값은 어댑터가 PollingStatement 바인딩 속성에 대해 지정된 SQL 문을 실행하는지 여부를 나타냅니다. 결과의 첫 번째 셀에 양수 값이 포함된 경우 어댑터는 폴링 문을 실행했습니다.

다음은 이 바인딩 속성에 대해 지정할 수 있는 몇 가지 유효한 문의 예입니다.

  • SELECT 문을 지정하는 경우:

    SELECT COUNT(*) from <table_name>

  • 저장 프로시저를 지정하는 경우 저장 프로시저는 다음과 같이 정의될 수 있습니다.

    CREATE PROCEDURE <procedure_name>
    AS BEGIN
    SELECT COUNT(*) FROM <table_name>
    END
    GO
    

    또는

    CREATE PROCEDURE <procedure_name>
    AS BEGIN
    DECLARE @count int
    SELECT @count = SELECT(*) FROM <table_name>
    SELECT @count
    END
    GO
    

저장 프로시저를 사용하는 경우 PolledDataAvailableStatement 를 로 EXEC <procedure_name>지정합니다.

중요

이 바인딩 속성에 지정한 문은 어댑터 시작 트랜잭션 내에서 실행되지 않으며 실제 폴링 문이 실행되기 전에 여러 번 호출될 수 있습니다(문을 실행하면 폴링에 사용할 수 있는 행이 있음을 나타낸 경우에도).

.NET 형식: 문자열

PollingIntervalInSeconds

범주: 폴링(인바운드)
설명: SQL 어댑터가 PolledDataAvailableStatement 바인딩 속성에 지정된 문을 실행하는 간격(초)을 지정합니다. 기본값은 30초입니다. 폴링 간격은 연속 폴링 간의 시간 간격을 결정합니다. 문이 지정된 간격 내에 실행되면 어댑터는 간격의 나머지 시간 동안 비활성 상태입니다.
.NET 형식: int(System.Int32)

PollingStatement

범주: 폴링(인바운드)
설명: SQL Server 데이터베이스 테이블을 폴링할 SQL 문을 지정합니다. 폴링 문에 대한 간단한 SELECT 문 또는 저장 프로시저를 지정할 수 있습니다. 기본값은 null입니다. 폴링을 사용하려면 PollingStatement 에 대한 값을 지정해야 합니다. 폴링 문은 PolledDataAvailableStatement 바인딩 속성에 의해 결정되는 폴링에 사용할 수 있는 데이터가 있는 경우에만 실행됩니다.

세미콜론으로 구분된 SQL 문 수를 지정할 수 있습니다. 폴링 문을 사용하여 SQL Server 데이터베이스 테이블에서 데이터를 읽거나 업데이트할 수 있습니다. SQL 어댑터는 하나의 트랜잭션 내에서 폴링 문을 실행합니다. 어댑터가 BizTalk Server 함께 사용되는 경우 SQL Server BizTalk 메시지 상자에 메시지를 제출하는 데 동일한 트랜잭션이 사용됩니다.

.NET 형식: 문자열

PollWhileDataFound

범주: 폴링(인바운드)
설명: 폴링되는 테이블에서 데이터를 사용할 수 있는 경우 SQL 어댑터가 폴링 간격을 무시하고 PolledDataAvailableStatement 바인딩 속성에 지정된 SQL 문을 지속적으로 실행할지 여부를 지정합니다. 테이블에서 사용할 수 있는 데이터가 없으면 어댑터가 되돌려 지정된 폴링 간격으로 SQL 문을 실행합니다. 기본값은 false입니다.

폴링 간격이 60초로 설정되고 PolledDataAvailableStatement 에 지정된 문이 폴링에 사용할 수 있는 데이터를 반환하는 시나리오를 고려합니다. 그런 다음 어댑터는 PollingStatement 바인딩 속성에 지정된 문을 실행합니다. 어댑터가 폴링 문을 실행하는 데 10초밖에 걸리지 않을 경우 PolledDataAvailableStatement 를 다시 실행하기 전에 50초 동안 기다린 다음 폴링 문을 실행해야 합니다. 대신 성능을 최적화하려면 이전 폴링 주기가 종료되는 즉시 어댑터가 다음 폴링 주기 실행을 시작할 수 있도록 PollWhileDataFound 바인딩 속성을 true 로 설정할 수 있습니다.

.NET 형식: bool(System.Boolean)

UseAmbientTransaction

범주: 트랜잭션
설명: SQL 어댑터가 호출자가 제공한 트랜잭션 컨텍스트를 사용하여 작업을 수행할지 여부를 지정합니다. 기본값은 true입니다. 즉, 어댑터는 항상 트랜잭션 컨텍스트에서 작업을 수행합니다. 트랜잭션에 참여하는 다른 리소스가 있고 SQL Server 트랜잭션에 조인하는 경우 트랜잭션은 MSDTC 트랜잭션으로 승격됩니다.

그러나 어댑터가 트랜잭션 컨텍스트에서 작업을 수행하지 않도록 하려는 시나리오가 있을 수 있습니다. 예:

  • SQL Server 데이터베이스에서 간단한 선택 작업을 수행하는 동안
  • Select 작업을 수행하고 Delete 문을 통해 또는 저장 프로시저를 호출하여 테이블의 변경 내용을 포함하지 않는 폴링 문을 지정하는 동안

이러한 두 작업 모두 데이터베이스 테이블을 업데이트하지 않으므로 MSDTC 트랜잭션을 사용하도록 이러한 작업을 상승시키는 것은 성능 오버헤드가 될 수 있습니다. 이러한 시나리오에서는 SQL 어댑터가 트랜잭션 컨텍스트에서 작업을 수행하지 않도록 바인딩 속성을 false 로 설정할 수 있습니다.

참고

  • UseAmbientTransaction을 False로 설정하면 PolledDataAvailableStatement가 호출되지 않습니다. 대신 어댑터는 PollingStatement를 직접 호출합니다.
  • 트랜잭션 컨텍스트에서 작업을 수행하지 않는 것은 데이터베이스를 변경하지 않는 작업에만 권장됩니다. 데이터베이스의 데이터를 업데이트하는 작업의 경우 바인딩 속성을 true로 설정하는 것이 좋습니다. 그렇지 않으면 인바운드 또는 아웃바운드 작업을 수행하는지 여부에 따라 메시지 손실 또는 중복 메시지가 발생할 수 있습니다.

.NET 형식: bool(System.Boolean)

SQL Server 바인딩 속성을 설정하려면 어떻게 하나요?

SQL Server 연결을 지정할 때 SQL Server 바인딩 속성을 설정할 수 있습니다. 바인딩 속성을 설정하는 방법에 대한 자세한 내용은 다음을 수행합니다.

참고 항목

SQL 애플리케이션 개발