메시지 큐 태스크를 사용하면 메시지 큐(MSMQ라고도 함)를 사용하여 SQL Server Integration Services 패키지 간에 메시지를 보내고 받거나 사용자 지정 애플리케이션에서 처리하는 애플리케이션 큐로 메시지를 보낼 수 있습니다. 이러한 메시지는 간단한 텍스트, 파일 또는 변수 및 해당 값의 형태를 취할 수 있습니다.
메시지 큐 작업을 사용하여 엔터프라이즈 전체에서 작업을 조정할 수 있습니다. 대상을 사용할 수 없거나 사용 중인 경우 메시지를 큐에 대기하고 나중에 배달할 수 있습니다. 예를 들어 작업은 네트워크에 연결할 때 메시지를 받는 영업 담당자의 오프라인 랩톱 컴퓨터에 대한 메시지를 큐에 대기할 수 있습니다. 메시지 큐 작업은 다음과 같은 용도로 사용할 수 있습니다.
다른 패키지가 체크 인될 때까지 작업 실행을 지연합니다. 예를 들어 각 소매 사이트에서 야간 유지 관리 후 메시지 큐 작업은 회사 컴퓨터에 메시지를 보냅니다. 회사 컴퓨터에서 실행되는 패키지에는 메시지 큐 작업이 포함되며 각 작업은 특정 소매 사이트의 메시지를 기다리고 있습니다. 사이트의 메시지가 도착하면 태스크가 해당 사이트의 데이터를 업로드합니다. 모든 사이트가 체크 인되면 패키지는 요약 합계를 계산합니다.
데이터를 처리하는 컴퓨터로 데이터 파일을 보냅니다. 예를 들어 식당 금전 등록기에서 출력은 각 웨이터의 팁에 대한 데이터가 추출되는 회사 급여 시스템에 데이터 파일 메시지로 보낼 수 있습니다.
엔터프라이즈 전체에 파일을 배포합니다. 예를 들어 패키지는 메시지 큐 작업을 사용하여 패키지 파일을 다른 컴퓨터로 보낼 수 있습니다. 대상 컴퓨터에서 실행되는 패키지는 메시지 큐 작업을 사용하여 패키지를 로컬로 검색하고 저장합니다.
메시지를 보내거나 받을 때 메시지 큐 태스크는 데이터 파일, 문자열, 변수에 문자열 메시지 또는 변수의 네 가지 메시지 유형 중 하나를 사용합니다. 변수 메시지 형식에 대한 문자열 메시지는 메시지를 받을 때만 사용할 수 있습니다.
태스크는 MSMQ 연결 관리자를 사용하여 메시지 큐에 연결합니다. 자세한 내용은 MSMQ 연결 관리자를 참조하세요. 메시지 큐에 대한 자세한 내용은 MSDN 라이브러리를 참조하세요.
메시지 큐 작업을 수행하려면 Integration Services 서비스를 설치해야 합니다. 설치할 구성 요소 페이지 또는 SQL Server 설치 마법사의 기능 선택 페이지에서 설치하도록 선택할 수 있는 일부 SQL Server 구성 요소는 Integration Services 구성 요소의 부분 집합을 설치합니다. 이러한 구성 요소는 특정 작업에 유용하지만 Integration Services의 기능은 제한됩니다. 예를 들어 SSDT(SQL Server Data Tools) 옵션은 패키지를 디자인하는 데 필요한 Integration Services 구성 요소를 설치하지만 Integration Services 서비스가 설치되지 않아 메시지 큐 작업이 작동하지 않습니다. Integration Services를 완전히 설치하려면 설치 할 구성 요소 페이지에서 Integration Services를 선택해야 합니다. 메시지 큐 태스크를 설치하고 실행하는 방법에 대한 자세한 내용은 Integration Services 설치를 참조하세요.
비고
컴퓨터의 운영 체제가 FIPS 모드로 구성되고 태스크에서 암호화를 사용하는 경우 메시지 큐 작업이 FIPS(Federal Information Processing Standard) 140-2를 준수하지 못합니다. 메시지 큐 태스크에서 암호화를 사용하지 않으면 작업이 성공적으로 실행됩니다.
메시지 유형
메시지 큐 태스크에서 제공하는 메시지 유형을 다음과 같은 방법으로 구성할 수 있습니다.
Data file메시지는 파일에 메시지가 포함되도록 지정합니다. 메시지를 받을 때 파일을 저장하고, 기존 파일을 덮어쓰고, 태스크에서 메시지를 받을 수 있는 패키지를 지정하도록 태스크를 구성할 수 있습니다.String메시지는 메시지를 문자열로 지정합니다. 메시지를 받을 때 받은 문자열을 사용자 정의 문자열과 비교하고 비교에 따라 작업을 수행하도록 작업을 구성할 수 있습니다. 문자열 비교는 대/소문자를 정확히 구분하거나 대/소문자를 구분하지 않는 방식 또는 부분 문자열 방식을 사용할 수 있습니다.String message to variable는 원본 메시지를 대상 변수로 전송되는 문자열로 지정합니다. 태스크를 구성하여 수신된 문자열을 사용자 정의 문자열과 비교할 수 있습니다. 이때 정확한 비교, 대/소문자 구분하지 않는 비교, 또는 부분 문자열 비교를 사용할 수 있습니다. 이 메시지 유형은 태스크가 메시지를 수신하는 경우에만 사용할 수 있습니다.Variable는 메시지에 하나 이상의 변수가 포함되도록 지정합니다. 메시지에 포함된 변수의 이름을 지정하도록 태스크를 구성할 수 있습니다. 메시지를 받을 때 메시지를 받을 수 있는 패키지와 메시지의 대상인 변수를 모두 지정하도록 태스크를 구성할 수 있습니다.
메시지 보내기
메시지를 보내도록 메시지 큐 작업을 구성할 때 메시지 큐 기술인 RC2 및 RC4에서 현재 지원되는 암호화 알고리즘 중 하나를 사용하여 메시지를 암호화할 수 있습니다. 이 두 암호화 알고리즘은 이제 메시지 큐 기술이 아직 지원하지 않는 최신 알고리즘에 비해 암호화적으로 약한 것으로 간주됩니다. 따라서 메시지 큐 작업을 사용하여 메시지를 보낼 때 암호화 요구 사항을 신중하게 고려해야 합니다.
메시지 수신
메시지를 받을 때 메시지 큐 작업은 다음과 같은 방법으로 구성할 수 있습니다.
메시지를 무시하거나 큐에서 메시지를 제거합니다.
시간 제한 지정
시간 초과 시 실패합니다
기존 파일을 덮어쓰는 경우, 메시지가
Data file에 저장됩니다.메시지가
Data file message형식을 사용하는 경우, 메시지 파일을 다른 파일 이름으로 저장합니다.
메시지 큐 태스크에서 사용할 수 있는 사용자 지정 로깅 메시지
다음 표에서는 메시지 큐 태스크에 대한 사용자 지정 로그 항목을 나열합니다. 자세한 내용은 SSIS(Integration Services) 로깅 및 로깅에 대한 사용자 지정 메시지를 참조하세요.
| 로그 항목 | 설명 |
|---|---|
MSMQAfterOpen |
태스크가 메시지 큐 열기를 완료했음을 나타냅니다. |
MSMQBeforeOpen |
태스크가 메시지 큐를 열기 시작했음을 나타냅니다. |
MSMQBeginReceive |
태스크가 메시지를 받기 시작했음을 나타냅니다. |
MSMQBeginSend |
태스크가 메시지를 보내기 시작했음을 나타냅니다. |
MSMQEndReceive |
태스크가 메시지 수신을 완료했음을 나타냅니다. |
MSMQEndSend |
태스크에서 메시지 보내기를 완료했음을 나타냅니다. |
MSMQTaskInfo |
태스크에 대한 설명 정보를 제공합니다. |
MSMQTaskTimeOut |
작업 시간이 초과되었음을 나타냅니다. |
메시지 큐 태스크 구성
SSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다. SSIS 디자이너에서 설정할 수 있는 속성에 대한 자세한 내용은 다음 항목 중 하나를 클릭합니다.
이러한 속성을 프로그래밍 방식으로 설정하는 방법에 대한 자세한 내용은 개발자 가이드의 Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask 클래스에 대한 설명서를 참조하세요.
관련 작업
SSIS 디자이너에서 이러한 속성을 설정하는 방법에 대한 자세한 내용은 작업 또는 컨테이너의 속성 설정을 참조하세요.