집계(BizTalk Server 샘플)
이 샘플은 오케스트레이션 및 파이프라인을 사용하여 메시지 집계 기능을 빌드하기 위한 것입니다. 여기서 빌드하는 오케스트레이션은 구체적으로 다음과 같은 작업을 수행합니다.
상관 관계가 지정된 메시지 집합을 받습니다. 메시지는 메시지 내용에서 추출되는 대상 파트너 URI 정보를 기반으로 상관 관계가 지정됩니다.
XML 송신 파이프라인을 실행하여 받은 메시지를 단일 교환 일괄 처리로 집계합니다.
메시지가 집계할 정도로 충분해지는 즉시 또는 매 분마다 XML 교환 메시지를 생성합니다.
이 샘플이 있는 위치
<샘플 경로>\Pipelines\Aggregator
다음 표에는 이 샘플의 파일이 나열되어 있습니다.
파일 | 설명 |
---|---|
Aggregator.sln | 샘플의 Visual Studio 솔루션 파일입니다. |
AggretatorBinding.xml | 샘플의 바인딩 파일입니다. |
Cleanup.bat | 어셈블리의 배포를 취소하고 GAC(전역 어셈블리 캐시)에서 어셈블리를 제거하는 데 사용됩니다. 송신 및 수신 포트를 제거합니다. 필요한 경우 Microsoft IIS(인터넷 정보 서비스) 가상 디렉터리를 제거합니다. |
Setup.bat | 이 샘플을 빌드 및 초기화하는 데 사용됩니다. |
Aggregate 폴더: Aggregate.btproj |
오케스트레이션 집계를 위한 BizTalk 프로젝트입니다. |
Aggregate 폴더: Aggregate.odx |
상관 관계가 지정된 메시지를 함께 수집한 다음 송신 파이프라인을 실행하여 이들 메시지를 단일 교환에 어셈블하는 오케스트레이션입니다. |
Aggregate 폴더: SuspendMessage.odx |
집계 오케스트레이션 내에서는 처리할 수 없는 메시지를 일시 중단하는 데 사용되는 오케스트레이션입니다. |
PipelinesAndSchemas 폴더: FFReceivePipeline.btp |
flat file disassembler가 포함된 수신 파이프라인입니다. |
PipelinesAndSchemas 폴더: Instance1.txt, Instance2.txt, Instance3.txt, Instance4.txt |
샘플의 문서 인스턴스입니다. Instance1.txt 및 Instance2.txt 대상 파트너 http://www.contoso.com 의 교환에 추가해야 하는 반면 Instance3.txt 및 Instance4.txt 대상 파트너 http://www.northwind.com 의 교환에 추가해야 합니다. |
PipelinesAndSchemas 폴더: Invoice.xsd, InvoiceEnvelope.xsd |
출력 교환에 대한 문서 스키마 및 봉투(Envelope) 스키마입니다. |
PipelinesAndSchemas 폴더: PipelinesAndSchemas.btproj |
스키마 및 파이프라인용 BizTalk 프로젝트입니다. |
PipelinesAndSchemas 폴더: PropertySchema.xsd |
샘플에 대한 속성 스키마입니다. |
PipelinesAndSchemas 폴더: XMLAggregatingPipeline.btp |
수집된 메시지를 XML 교환으로 어셈블하기 위해 오케스트레이션에서 실행하는 송신 파이프라인입니다. |
샘플 빌드 및 초기화
Aggregator 샘플을 빌드 및 초기화하려면 다음 절차를 사용합니다.
Aggregator 샘플을 빌드 및 초기화하려면
명령 창에서 다음 폴더로 이동합니다.
<샘플 경로>\Pipelines\Aggregator
다음 작업을 수행하는 Setup.bat 파일을 실행합니다.
이 샘플에 대한 입력(In) 및 출력(Out) 폴더를 다음 폴더에 만듭니다.
<샘플 경로>\Pipelines\Aggregator
이 샘플에 대한 Visual Studio 프로젝트를 컴파일합니다.
"Aggregator Sample"이라는 새 응용 프로그램을 만들고 샘플 어셈블리를 응용 프로그램에 배포합니다.
BizTalk Server 수신 위치와 송신 및 수신 포트를 만들고 바인딩합니다.
오케스트레이션을 등록 및 시작하고 수신 위치를 사용하도록 설정한 후에 송신 포트를 시작합니다.
Setup.bat 파일을 실행하지 않은 채 이 샘플에서 프로젝트를 열고 빌드하려는 경우 먼저 .NET Framework Strong Name 유틸리티(sn.exe)를 사용하여 강력한 이름 키 쌍을 만들어야 합니다. 이 키 쌍을 사용하여 결과 어셈블리에 서명합니다.
이 샘플을 실행하기 전에 빌드 및 초기화 프로세스에서 BizTalk Server가 오류를 보고하지 않았는지 확인합니다.
Setup.bat가 변경한 내용을 실행 취소하려면 Cleanup.bat를 실행합니다. Setup.bat를 두 번째로 실행하기 전에 Cleanup.bat를 실행해야 합니다.
샘플 실행
Aggregator 샘플을 실행하려면 다음 절차를 사용합니다.
Aggregator 샘플을 실행하려면
PipelinesAndSchemas 폴더에 있는 Instance1.txt 및 Instance2.txt 파일을 열고 해당 내용을 검사합니다.
두 파일 모두에서 DestinationPartnerURI 요소에는 값
http://www.contoso.com
이 포함됩니다. 이 값은 이러한 두 메시지를 서로 상호 연결하는 데 사용되므로 하나의 교환에 추가할 수 있습니다.마찬가지로 Instance3.txt 및 Instance4.txt 파일에는 DestinationPatnerURI 요소가 로 설정됩니다
http://www.northwind.com
.이러한 두 메시지는 다른 교환에 함께 추가됩니다.
Instance1.txt, Instance2.txt, Instance3.txt, Instance4.txt 텍스트 파일의 복사본을 In 폴더에 붙여 넣습니다.
집계 오케스트레이션은 10개 메시지가 수집되는 즉시 또는 1분의 시간 제한이 지난 후에 출력 교환을 생성합니다. 따라서 Out 폴더의 파일은 지연되어 나타날 수 있습니다.
시간 제한이 적용되지 않도록 하려면 네 개의 입력 파일을 네 번 더 붙여 넣으면 됩니다. 그러면 집계 오케스트레이션이 트리거되어 교환이 생성됩니다.
Out 폴더에서 만든 XML 파일을 관찰합니다. 각 대상 파트너 URI당 하나씩 두 개의 파일이 있어야 합니다.
두 파일 중 하나를 열어 해당 내용을 검사합니다. 이 파일에는 봉투(Envelope)와 두 개의 XML 문서로 구성된 XML 교환이 포함되어 있어야 합니다.
참고
샘플을 구현할 때 호위(convoy) 시나리오에서 로드가 높으면 "배달됨(메시지 사용되지 않음)" 또는 "폐기된 메시지와 함께 완료됨" 상황이 발생할 수 있습니다. 메시지가 종료 중인 비즈니스 프로세스로 라우팅되거나 비즈니스 프로세스에 예기치 않은 메시지가 도착할 때마다 이러한 현상이 발생합니다.