다음을 통해 공유


SQL 어댑터를 사용하여 큰 데이터 형식의 테이블 및 뷰에서 작업 실행

SQL 어댑터를 사용하면 어댑터 클라이언트가 varchar(max), nvarchar(max) 또는 varbinary(max)와 같은 큰 데이터 형식의 열에서 데이터를 읽고 업데이트할 수 있습니다. 이러한 열에서 데이터를 읽으려면 어댑터 클라이언트에서 선택 작업을 사용할 수 있습니다. 이러한 열에 데이터를 삽입하거나 업데이트하기 위해 어댑터는 set<column_name> 작업을 노출합니다. 여기서 <column_name> varchar(max), nvarchar(max) 또는 varbinary(max) 형식의 열 이름입니다.

또한 2008년 SQL Server varbinay(max) 열이 텍스트 문서 및 이미지와 같은 구조화되지 않은 데이터를 저장할 수 있습니다. 이러한 구조화되지 않은 데이터를 FILESTREAM 데이터라고 합니다. FILESTREAM 데이터는 파일 시스템에 파일로 저장할 수 있습니다. SQL 어댑터를 사용하면 클라이언트가 varbinary(max) 형식의 열에 FILESTREAM 데이터를 입력할 수 있습니다. FILESTREAM 스토리지에 대한 자세한 내용은 FILESTREAM 개요를 참조하세요.

이 항목에서는 FILESTREAM 데이터를 삽입하거나 업데이트할 수 있도록 SQL Server 실행하는 컴퓨터와 어댑터 클라이언트를 실행하는 컴퓨터에서 수행해야 하는 특정 작업에 대한 정보를 제공합니다. 또한 이 항목에서는 FILESTREAM 데이터를 삽입하기 위해 column_name> 설정<작업을 수행하는 방법에 대한 지침을 제공합니다.

참고

사용자 정의 형식의 열이 있는 테이블에서 작업을 수행하는 경우 애플리케이션 개발을 시작하기 전에 SQL 어댑터를 사용하여 User-Defined 형식의 테이블 및 뷰에 대한 작업을 참조해야 합니다.

필수 구성 요소

SQL Server 실행하는 컴퓨터와 어댑터 클라이언트를 실행하는 컴퓨터에서 다음 작업을 수행해야 합니다.

  • SQL Server 실행 중인 컴퓨터에서

  • 어댑터 클라이언트를 실행하는 컴퓨터에서

    • SQL 클라이언트 연결 SDK가 설치되어 있어야 합니다. SQL Server 2008 설치 프로그램을 실행하고 마법사의 기능 선택 페이지에서 SQL 클라이언트 연결 SDK를 선택하여 SQL 클라이언트 연결 SDK를 설치할 수 있습니다. 어댑터는 SQL 클라이언트 연결 SDK와 함께 설치된 sqlncli10.dll 사용하여 FILESTREAM 작업을 수행합니다.

    • 어댑터 클라이언트를 실행하는 컴퓨터에서 MSDTC를 구성해야 합니다. MSDTC를 구성하는 방법에 대한 지침은 SQL Server 및 어댑터 클라이언트에서 MSDTC 구성을 참조하세요.

    이러한 작업을 완료한 후에는 모두 SQL Server 2008 데이터베이스 테이블에서 FILESTREAM 데이터를 삽입하거나 업데이트하도록 설정됩니다.

이 항목에서 대규모 데이터 형식에 대한 작업을 보여 주는 방법

데이터 형식이 큰 테이블에서 column_name> 설정<작업을 수행하는 방법을 보여 주려면 열 ID 및 문서가 있는 레코드 테이블을 사용합니다. ID 열은 uniqueidentifier 형식이며 GUID를 사용합니다. 문서 열의 형식은 VARBINARY(MAX)입니다. ID 열에 GUID ''438B7B4C-5491-409F-BCC1-78817C399EC3가 이미 있다고 가정합니다. 문서 열을 업데이트하기 위해 어댑터는 SetDocument 작업을 노출합니다.

참고

SQL Server 2008의 경우 FILESTREAM 작업을 보여 주려면 문서 열이 FILESTREAM 데이터를 저장할 수 있다고 가정합니다.

SQL Server 데이터베이스에서 작업을 수행하는 방법

BizTalk Server SQL 어댑터를 사용하여 SQL Server 데이터베이스에서 작업을 수행하려면 구성 요소에 설명된 절차 작업을 수행하여 SQL 어댑터를 사용하여 BizTalk 애플리케이션을 개발합니다. 데이터 형식이 큰 테이블에서 작업을 수행하려면 다음 작업을 수행합니다.

  1. BizTalk 프로젝트를 만들고 column_name> 설정<작업에 대한 스키마를 생성합니다. 이 항목에서는 Records 테이블에 대한 SetDocument 작업에 대한 스키마를 생성합니다.

  2. SQL Server 데이터베이스에서 메시지를 보내고 받기 위한 메시지를 BizTalk 프로젝트에 만듭니다.

  3. Records 테이블에서 SetDocument 작업을 호출하는 오케스트레이션을 만듭니다.

  4. BizTalk 프로젝트를 빌드하고 배포합니다.

  5. 물리적 송신 및 수신 포트를 만들어 BizTalk 애플리케이션을 구성합니다.

  6. BizTalk 애플리케이션을 시작합니다.

    이 항목에서는 이러한 작업을 수행하는 지침을 제공합니다.

이 항목을 기반으로 하는 샘플

이 항목을 기반으로 하는 샘플 FILESTREAMOperation은 BizTalk 어댑터 팩과 함께 제공됩니다. 자세한 내용은 SQL 어댑터에 대한 샘플을 참조하세요.

스키마 생성

큰 데이터 형식의 열에서 값을 업데이트하는 방법을 보여 주려면 Records 테이블의 SetDocument 작업에 대한 스키마를 생성합니다. BizTalk 프로젝트를 만들고 어댑터 서비스 사용 추가 기능을 사용하여 스키마를 생성해야 합니다. 스키마를 생성하는 방법에 대한 자세한 내용은 SQL 어댑터를 사용하여 Visual Studio에서 SQL Server 작업에 대한 메타데이터 검색을 참조하세요.

메시지 및 메시지 유형 정의

오케스트레이션의 메시지에 필요한 "유형"에 대해서는 앞서 생성한 스키마에 나와 있습니다. 메시지는 일반적으로 변수이며, 이 형식은 해당 스키마에 의해 정의됩니다. 이제 오케스트레이션에 대한 메시지를 만들고 이전 단계에서 생성한 스키마에 연결해야 합니다.

  1. BizTalk 프로젝트에 오케스트레이션을 추가합니다. 솔루션 탐색기 BizTalk 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목을 클릭합니다. BizTalk 오케스트레이션의 이름을 입력한 다음 추가를 클릭합니다.

  2. BizTalk 프로젝트의 오케스트레이션 보기 창이 열려 있지 않으면 이 창을 엽니다. 이렇게 하려면 보기를 클릭하고 다른 창을 가리킨 다음 오케스트레이션 보기를 클릭합니다.

  3. 오케스트레이션 보기에서 메시지를 마우스 오른쪽 단추로 클릭한 다음 새 메시지를 클릭합니다.

  4. 새로 만든 메시지를 마우스 오른쪽 단추로 클릭한 다음 속성 창을 선택합니다.

  5. Message_1속성 창에서 다음을 수행합니다.

    사용 항목 원하는 작업
    ID Request 입력
    메시지 유형 드롭다운 목록에서 스키마를 확장한 다음 SetOperation.TableOperation_dbo_Records.SetDocument를 선택합니다. 여기서 SetOperation은 BizTalk 프로젝트의 이름입니다. TableOperation_dbo_Records 레코드 테이블의 SetDocument 작업에 대해 생성된 스키마입니다.
  6. 2단계를 반복하여 새 메시지를 만듭니다. 새 메시지의 속성 창에서 다음을 수행합니다.

    사용 항목 원하는 작업
    ID Response 입력
    메시지 유형 드롭다운 목록에서 스키마를 확장한 다음 SetOperation.TableOperation_dbo_Records.SetDocumentResponse를 선택합니다.

오케스트레이션 설정

SQL Server 작업을 수행하기 위해 BizTalk Server 사용하려면 BizTalk 오케스트레이션을 만들어야 합니다. 이 오케스트레이션에서는 정의된 수신 위치에 요청 메시지를 삭제합니다. SQL 어댑터는 이 메시지를 사용하고 SQL Server 전달합니다. SQL Server 응답은 다른 위치에 저장됩니다. 메시지를 SQL Server 보내고 응답을 받으려면 각각 보내기 및 받기 셰이프를 포함해야 합니다. SetDocument 작업에 대한 샘플 오케스트레이션은 다음과 유사합니다.

FILESTREAM 작업을 수행하기 위한 오케스트레이션

메시지 셰이프 추가

각 메시지 셰이프에 대해 다음 속성을 지정해야 합니다. Shape 열에 나열된 이름은 방금 언급한 오케스트레이션에 표시된 메시지 셰이프의 이름입니다.

도형 도형 유형 속성
ReceiveMessage Receive - 이름을ReceiveMessage로 설정
- 활성화True로 설정
SendMessage Send - 이름을SendMessage로 설정
ReceiveResponse Receive - 이름을ReceiveResponse로 설정
- 활성화False로 설정
SendResponse Send - 이름을SendResponse로 설정

포트 추가

각 논리 포트에 대해 다음 속성을 지정해야 합니다. 포트 열에 나열된 이름은 오케스트레이션에 표시된 포트의 이름입니다.

포트 속성
MessageIn - 식별자를MessageIn으로 설정
- TypeMessageInType으로 설정
- 통신 패턴을단방향으로 설정
- 수신통신 방향 설정
LOBPort - 식별자를LOBPort로 설정
- 형식LOBPortType으로 설정
- 통신 패턴을Request-Response로 설정
- 통신 방향을Send-Receive로 설정
ResponseOut - 식별자를ResponseOut으로 설정
- TypeResponseOutType으로 설정
- 통신 패턴을단방향으로 설정
- 전송할 통신 방향 설정

작업 셰이프에 대한 메시지를 지정하고 포트에 연결

다음 표에서는 작업 셰이프에 대한 메시지를 지정하고 메시지를 포트에 연결하도록 설정해야 하는 속성과 해당 값을 지정합니다. Shape 열에 나열된 이름은 앞에서 언급한 오케스트레이션에 표시된 메시지 셰이프의 이름입니다.

도형 속성
ReceiveMessage - 메시지를요청으로 설정
- 작업을MessageIn.FileStream.Request로 설정
SendMessage - 메시지를요청으로 설정
- 작업을 LOBPort.FileStream.Request로 설정
ReceiveResponse - 메시지를응답으로 설정
- 작업을 LOBPort.FileStream.Response로 설정
SendResponse - 메시지를응답으로 설정
- 작업을ResponseOut.FileStream.Request로 설정

이러한 속성을 지정하면 메시지 셰이프와 포트가 연결되고 오케스트레이션이 완료됩니다.

이제 BizTalk 솔루션을 빌드하고 BizTalk Server 배포해야 합니다. 자세한 내용은 오케스트레이션 빌드 및 실행을 참조하세요.

BizTalk 애플리케이션 구성

BizTalk 프로젝트를 배포한 후에는 이전에 만든 오케스트레이션이 BizTalk Server 관리 콘솔의 오케스트레이션 창 아래에 나열됩니다. 애플리케이션을 구성하려면 BizTalk Server 관리 콘솔을 사용해야 합니다. 연습은 연습: 기본 BizTalk 애플리케이션 배포를 참조하세요.

애플리케이션 구성에는 다음이 포함됩니다.

  • 애플리케이션에 대한 호스트를 선택합니다.

  • 오케스트레이션에서 만든 포트를 BizTalk Server 관리 콘솔의 실제 포트에 매핑합니다. 이 오케스트레이션의 경우 다음을 수행해야 합니다.

    • 하드 디스크의 위치와 요청 메시지를 삭제할 해당 파일 포트를 정의합니다. BizTalk 오케스트레이션은 요청 메시지를 사용하고 SQL Server 데이터베이스로 보냅니다.

    • 하드 디스크의 위치와 BizTalk 오케스트레이션이 SQL Server 데이터베이스의 응답이 포함된 응답 메시지를 삭제하는 해당 파일 포트를 정의합니다.

    • SQL Server 데이터베이스에 메시지를 보내는 물리적 WCF-Custom 또는 WCF-SQL 송신 포트를 정의합니다. 또한 송신 포트에서 작업을 지정해야 합니다. 포트를 만드는 방법에 대한 자세한 내용은 SQL 어댑터에 대한 물리적 포트 바인딩 수동 구성을 참조하세요.

      중요

      FILESTREAM 데이터를 입력하는 작업은 트랜잭션 내에서 수행해야 합니다. 따라서 WCF-Custom 또는 WCF-SQL 송신 포트에서 UseAmbientTransaction 바인딩 속성이 True 로 설정되어 있는지 확인합니다. 바인딩 속성에 대한 자세한 내용은 SQL Server 어댑터 바인딩 속성에 대한 BizTalk 어댑터에 대한 읽기를 참조하세요.

      중요

      FILESTREAM 데이터를 삽입하는 작업을 수행하려면 항상 Windows 인증을 사용하여 WCF-Custom 또는 WCF-SQL 송신 포트의 SQL Server 연결해야 합니다. 따라서 포트 속성 대화 상자의 자격 증명 탭에서 Single Sign-On 사용 안 함 옵션을 선택하고 사용자 이름과 암호를 비워 둡니다.

      참고

      어댑터 서비스 BizTalk 프로젝트 추가 기능 사용을 사용하여 스키마를 생성하면 포트에 대한 정보와 해당 포트에 대해 설정할 작업이 포함된 바인딩 파일도 만들어집니다. BizTalk Server 관리 콘솔에서 이 바인딩 파일을 가져와 송신 포트(아웃바운드 호출의 경우) 또는 수신 포트(인바운드 호출의 경우)를 만들 수 있습니다. 자세한 내용은 SQL 어댑터를 사용하도록 포트 바인딩 파일을 사용하여 물리적 포트 바인딩 구성을 참조하세요.

애플리케이션 시작

Records 테이블에서 SetDocument 작업을 수행하려면 BizTalk 애플리케이션을 시작해야 합니다. BizTalk 애플리케이션 시작에 대한 지침은 오케스트레이션을 시작하는 방법을 참조하세요.

이 단계에서는 다음을 확인합니다.

  • 오케스트레이션에 대한 요청 메시지를 받을 FILE 수신 포트가 실행 중입니다.

  • 오케스트레이션에서 응답 메시지를 받을 FILE 송신 포트가 실행 중입니다.

  • WCF-Custom 또는 WCF-SQL 송신 포트는 실행 중인 SQL Server 데이터베이스에 메시지를 보냅니다.

  • 작업에 대한 BizTalk 오케스트레이션이 실행 중입니다.

작업 실행

애플리케이션을 실행한 후 요청 메시지를 FILE 수신 위치에 삭제해야 합니다. 요청 메시지의 스키마는 이전에 생성한 SetDocument 작업의 스키마를 준수해야 합니다. 예를 들어 문서 열을 업데이트하기 위한 요청 메시지는 다음과 같습니다.

<SetDocument xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Records">
  <Filter>WHERE Id='438B7B4C-5491-409F-BCC1-78817C399EC3'</Filter>
  <Data>UwBlAHQAdgBfAHYAYQByAGIAaQBuAGEAcgB5AE0AQQBYAA==</Data>
</SetDocument>

중요

Filter 요소는 어댑터가 레코드를 업데이트하는 위치에 따라 WHERE 절을 포함해야 합니다. 요소에는 Data Document 열에 삽입하려는 base64로 인코딩된 값이 포함되어야 합니다.

이 요청 메시지는 문서 열을 지정된 값으로 업데이트합니다. 오케스트레이션은 메시지를 사용하고 SQL Server 데이터베이스로 보냅니다. SQL Server 데이터베이스의 응답은 오케스트레이션의 일부로 정의된 다른 FILE 위치에 저장됩니다. 예를 들어 이전 요청 메시지에 대한 SQL Server 데이터베이스의 응답은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8" ?>
<SetDocumentResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Records" />

어댑터는 column_name> 설정< 작업에 대해 빈 응답을 보냅니다.

모범 사례

BizTalk 프로젝트를 배포하고 구성한 후에는 구성 설정을 바인딩 파일이라는 XML 파일로 내보낼 수 있습니다. 바인딩 파일을 생성한 후에는 파일에서 구성 설정을 가져올 수 있으므로 동일한 오케스트레이션을 위해 송신 포트 및 수신 포트와 같은 항목을 만들 필요가 없습니다. 바인딩 파일에 대한 자세한 내용은 어댑터 바인딩 다시 사용을 참조하세요.

참고 항목

SQL 어댑터를 사용하여 BizTalk 애플리케이션 개발