다음을 통해 공유


오류 처리(BizTalk Server 샘플 폴더)

이 샘플은 CBR(내용 기준 라우팅) 응용 프로그램에 대한 오류 처리 기능을 빌드하기 위한 것입니다.

필수 구성 요소

샘플을 실행하려면 Microsoft Office InfoPath 2010 이상을 설치하는 것이 좋습니다. InfoPath를 사용하지 않고 샘플을 실행할 수도 있지만 이 경우 경비 보고서와 HTTP 어댑터를 통한 경비 보고서 전송을 확인할 수 없습니다.

이 샘플의 용도

이 샘플은 경비 보고서 처리 시스템의 일부를 구현합니다. 특히 이 샘플은 다음 작업을 수행합니다.

  1. 경비 보고서 및 부서 이름을 비롯한 개별 전송자에 대한 정보가 포함된 경비 보고서 스키마를 정의합니다.

  2. 디렉터리를 통해 또는 InfoPath를 사용하여 웹 서비스를 통해 경비 보고서를 전송하는 기능을 제공합니다.

  3. 포트 필터에서 라우팅을 제어하는 데 사용할 수 있도록 메시지 문서의 DepartmentcorrelationID 속성을 승격합니다.

  4. 마케팅 부서에 속하는 경비 보고서를 디렉터리의 파일로 라우팅하여 부서 백 엔드 시스템으로의 배달을 시뮬레이션합니다.

  5. 마케팅 이외의 부서에 속하는 경비 보고서에 대해 실패한 메시지를 생성합니다. 실패한 메시지에는 오류 코드, 오류 설명 등 오류에 대한 정보가 포함됩니다.

  6. 수정하고 다시 전송할 수 있도록 실패한 메시지를 받는 사람(비즈니스 사용자 또는 응용 프로그램 운영자)에게 라우팅합니다.

  7. 위에서 설명한 대로 다시 전송된 경비 보고서를 부서에 따라 라우팅합니다.

    이 작업은 대부분 BizTalk 오케스트레이션 일정을 통해 수행됩니다.

이 샘플이 디자인된 방식 및 이유

디자인은 메시지를 라우팅하기 위해 BizTalk Server 내의 기본 송신 및 수신 XML 파이프라인, 속성 승격, 구독 필터 및 오케스트레이션 일정을 사용합니다. 각 디자인 요소와 선택 이유는 다음 표에 나와 있습니다.

디자인 요소 선택 이유
기본 XML 수신 파이프라인 - XMLReceive 파이프라인은 속성 승격을 지원합니다. PassThruReceive 파이프라인은 그렇지 않습니다.
- 인바운드 메시지는 이미 XML 형식이며 기본 디스어셈블리 및 파티 확인 이외의 처리가 필요하지 않습니다.
실패한 메시지에 대한 라우팅 - 수신 포트는 실패한 메시지를 일시 중단하고 기본적으로 부정 승인을 생성합니다. 라우팅이 사용하도록 설정된 경우 BizTalk Server 구독 애플리케이션(예: 다른 수신 포트 또는 오케스트레이션 일정)에 처리를 실패하는 메시지를 라우팅하려고 시도합니다.
속성 승격 - BizTalk Server 라우팅을 수행하는 속성 필드에 따라 달라집니다. 고유 필드는 오케스트레이션에서 사용되며 라우팅에 사용할 수 없습니다.
구독 필터 - 구독 필터는 속성 필드를 기반으로 하나 이상의 조건을 충족하는 메시지를 캡처하여 라우팅을 수행합니다.
BizTalk 오케스트레이션 일정 - 실패한 메시지에 정보를 추가할 수 있는 기회를 제공합니다.
- 실패한 메시지를 사람의 개입을 위해 전용 위치로 라우팅할 수 있습니다.
- 다시 제출된 비용 보고서를 처리합니다.
XMLTransmit - 나가는 XML 메시지의 기본 어셈블리를 수행합니다. PassThruTransmit 파이프라인은 추가 지원을 제공하지 않습니다.

이 샘플이 있는 위치

이 샘플은 \Messaging\ErrorHandling\에 <Samples Path>있습니다.

다음 표는 이 샘플의 파일 목록을 보여 줍니다.

파일 Description
Cleanup.bat 어셈블리 배포를 취소하고 전역 어셈블리 캐시에서 어셈블리를 제거하는 데 사용됩니다.

송신 및 수신 포트를 제거합니다.

필요에 따라 IIS(인터넷 정보 서비스) 가상 디렉터리를 제거합니다.
ErrorHandling.sln 샘플의 Visual Studio 솔루션 파일입니다.
ErrorHandlingBinding.xml 샘플의 바인딩 파일입니다.
Setup.bat 이 샘플을 빌드 및 초기화하는 데 사용됩니다.
경비 보고서 – John Doe.xml 예제 경비 보고서 InfoPath 문서입니다.
잘못된 경비 보고서 – John Doe.xml 잘못된 데이터가 포함된 예제 경비 보고서 InfoPath 문서입니다.
ErrorHandler 폴더:

ErrorHandler.btproj
오케스트레이션에 대한 BizTalk 프로젝트입니다.
ErrorHandler 폴더:

ResubmitLogic.odx
실패한 메시지에 등록하고 수정할 수 있도록 받는 사람에게 보낸 다음 라우팅을 위해 수정된 메시지를 다시 보낸 사람에게 전송하는 오케스트레이션입니다.
ErrorHandler 폴더:

SuspendMessage.odx
오류 처리 오케스트레이션 내에서 처리할 수 없는 메시지를 일시 중단하는 데 사용되는 오케스트레이션입니다.
InfoPathForms 폴더:

Expense Report.xsn

경비 보고서 - Resubmit.xsn
경비 보고서 InfoPath 양식 및 실패한 메시지를 보고 다시 전송하는 데 사용되는 양식입니다.
PipelinesAndSchemas 폴더:

ExpenseReportSchema.xsd
경비 보고서 문서에 대한 XML 스키마입니다.
PipelinesAndSchemas 폴더:

PipelinesAndSchemas.btproj
샘플에 대한 BizTalk 프로젝트입니다.
PipelinesAndSchemas 폴더:

PropertySchema.xsd
샘플에 대한 속성 스키마입니다.

이 샘플의 사용 방법

이 샘플에서 시작하여 고유한 오류 처리 절차를 만들 수 있습니다.

이 샘플 빌드 및 초기화

Compose 샘플을 빌드하고 초기화하려면 다음을 수행하십시오.

  1. 명령 창에서 다음 폴더로 이동합니다.

    < Samples Path > \Messaging\ErrorHandling

  2. 다음 작업을 수행하는 Setup.bat를 실행합니다.

    • 다음 경로 아래에 ExpenseReportIn, ExpenseReportOutResubmittedReportIn 이라는 세 개의 폴더를 만듭니다.

      < Samples Path > \Messaging\ErrorHandling

    • InfoPath forms Expense Report.xsnExpense Report – Resubmit.xsn복사하여 C:\Temp\InfoPathForms 폴더에 게시합니다.

    • 이 샘플에 대한 Visual Studio 프로젝트를 컴파일합니다.

    • ExpenseReports라는 가상 디렉터리를 만듭니다.

    • 오류 처리 샘플이라는 새 BizTalk 애플리케이션을 만들고 샘플 어셈블리를 배포합니다.

    • BizTalk Server 수신 위치와 송신 및 수신 포트를 만들고 바인딩합니다.

    • 오케스트레이션을 등록 및 시작하고 수신 위치를 사용하도록 설정한 다음 송신 포트를 시작합니다.

      Setup.bat를 실행하지 않고 이 샘플에서 프로젝트를 열고 빌드하려는 경우 먼저 .NET Framework Strong Name Utility(sn.exe)를 사용하여 강력한 이름 키 쌍을 만들어야 합니다. 이 키 쌍을 사용하여 샘플 어셈블리에 서명합니다.

  3. 이 샘플을 실행하기 전에 빌드 또는 초기화 프로세스 중에 BizTalk Server 오류를 보고하지 않았는지 확인합니다.

    참고

    Setup.bat가 변경한 내용을 실행 취소하려면 Cleanup.bat를 실행합니다. Setup.bat를 두 번째로 실행하기 전에 Cleanup.bat를 실행해야 합니다.

  4. IIS(인터넷 정보 서비스) 7.0을 사용하는 경우 샘플에서 사용하는 BizTalk Server HTTP 수신 위치에 해당하는 가상 디렉터리에 대한 설정을 조정하기 위해 추가 구성 단계를 수행해야 합니다. 다음을 수행하여 IIS를 구성합니다.

    1. IIS 7.0 관리자를 사용하여 BizTalk Isolated 호스트 사용자 그룹에 대한 새 응용 프로그램 풀을 만듭니다.

    2. BizTalk Server 격리된 호스트 사용자의 ID로 실행되도록 애플리케이션 풀을 구성합니다. (다른 BizTalk Server HTTP 수신 위치에 대해 구성된 애플리케이션 풀이 이미 있는 경우 이 단계를 건너뛸 수 있습니다.)

    3. 이전 단계에서 만든 HTTP 수신 애플리케이션 풀을 사용하도록 Virtual Directory ExpenseReport 를 구성합니다.

      BTSHTTPReceive.dll ISAPI 확장용 웹 서버 확장이 없는 경우 새로 만들고 해당 상태를 "허용"으로 설정하여 사용하도록 설정합니다. 다음과 같이 IIS 7.0에서 IIS 관리 콘솔을 사용하여(관리 도구 바로 아래에서 또는 컴퓨터 관리 콘솔을 통해) 이 작업을 수행할 수 있습니다.

    4. 인터넷 정보 서비스 관리자 트리를 확장합니다.

    5. 웹 서비스 확장 폴더를 클릭합니다.

    6. 관리 콘솔 오른쪽 창에서 새 웹 서비스 확장 추가를 클릭합니다.

    7. 새 웹 서비스 확장 대화 상자에서 추가를 클릭합니다.

    8. 파일 추가 대화 상자에서 찾아보기를 클릭하여\HttpReceive\BTSHTTPReceive.dll파일을 <BizTalkInstallPath> 선택한 다음 확인을 클릭합니다.

    9. 로컬 경로 \Program Files (x86)\Microsoft BizTalk Server <VERSION>HTTPReceive를 사용하도록 Virtual Directory ExpenseReport 구성

      자세한 내용은 HTTP 수신 위치에 대해 IIS를 구성하는 방법을 참조하세요.

샘플 실행

올바른 경비 보고서를 사용하여 샘플을 실행하기 전에 다음 절차에 따라 "오류 없음" 사례 샘플이 제대로 작동하는지 확인합니다.

"오류 없음" 사례 샘플이 제대로 작동하는지 확인하려면 다음을 수행하십시오.

  1. InfoPath 양식 경비 보고서 - John Doe.xml을 엽니다. 양식 내의 부서 필드를 확인합니다. 이 필드가 "마케팅"으로 설정되어 있어야 합니다.

  2. InfoPath 창의 왼쪽 위 모서리에서 제출 을 클릭하거나 비용 보고서 다시 제출을 클릭합니다. 경비 보고서가 전송되었음을 알리는 확인 창이 나타날 때까지 기다립니다.

    또는

    이 파일을 복사하여 ExpenseReportIn 폴더에 붙여넣습니다.

  3. ExpenseReportOut 폴더에 새 파일이 삭제된 것을 볼 수 있습니다. 이 파일은 이전 단계에서 전송된 양식과 동일한 경비 보고서 양식입니다.

    "오류 없음" 사례를 확인한 후 다음 절차에 따라 잘못된 경비 보고서로 샘플을 실행하여 오류 처리 기능을 트리거합니다.

오류 처리를 트리거하려면 다음을 수행하십시오.

  1. InfoPath 양식 잘못된 비용 보고서를 엽니다. John Doe.xml. 양식 내의 부서 필드를 확인합니다. 이 필드가 잘못된 값으로 설정되어 있습니다.

  2. InfoPath 창의 왼쪽 위 모서리에서 제출을 클릭합니다. 경비 보고서가 전송되었음을 알리는 확인 창이 나타날 때까지 기다립니다.

    또는

    이 파일을 복사하여 ExpenseReportIn 폴더에 붙여넣습니다.

  3. expenseReportOut 폴더에 삭제된 ErrorReport_<date_time>.xml 라는 새 파일이 표시됩니다.

    이 파일을 열고 시작 부분에 오류 정보가 추가된 점만 제외하고 이전 단계에서 전송된 경비 보고서와 같은 것을 확인합니다.

  4. 잘못된 부서 값을 "Marketing"으로 바꾼 다음 InfoPath 창의 왼쪽 위 모서리에서 제출 을 클릭합니다.

    또는

    이 파일을 복사하여 ResubmittedReportIn 폴더에 붙여넣습니다.

  5. ExpenseReportOut 폴더에 만들어진 새 파일이 표시됩니다. 이 파일은 서버에 다시 전송된 수정한 경비 보고서입니다.

참고 항목

실패한 메시지 라우팅 사용
메시지(BizTalk Server 샘플 폴더)