다음을 통해 공유


DynamicReceive 샘플(BizTalk Server 샘플)

DynamicReceive 샘플은 MQSeries 큐에 대한 URI가 동적으로 지정될 때 MQSeries 큐에서 BizTalk Server 메시지를 받는 방법을 보여 줍니다.

이 샘플의 용도

이 샘플은 queueManager, 큐 및 서버 변수에 지정된 대로 MQSeries 를 동적으로 만듭니다. 동적 수신 시나리오를 사용하도록 설정하고 MQMD_MsgId 및 MQMD_CorrelId 메시지 속성에 지정된 필터 조건에 따라 동적으로 지정된 MQSeries 큐에서 BizTalk Server 메시지를 가져옵니다.

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

MQSeries 어댑터는 오케스트레이션에 큐의 URI 주소를 지정하여 MQSeries 큐에서 메시지를 동적으로 받을 수 있습니다. 이 기능을 수행하려면 오케스트레이션에 간청-응답 송신 포트를 사용합니다.

메시지를 동적으로 수신하려면 오케스트레이션의 셰이프에서 다음을 지정합니다.

  1. BizTalk Server 메시지에서 다음 속성을 설정하여 동적 수신을 사용하도록 설정합니다. MQSeries.DynamicReceive = 'Yes'

  2. 포트 URI를 설정하여 메시지를 가져올 소스 주소를 지정합니다. 선택적으로 다음을 지정할 수 있습니다.

    • 메시지에서 MQSeries.WaitInterval 속성을 사용하여 메시지를 가져오기 전에 대기 간격을 지정합니다.

    • 메시지 수신에 대한 일치 조건을 지정합니다. 일치 조건 옵션은 메시지 ID, CorrelationID, GroupIDMessageSequenceNumber입니다. 자세한 내용은 에서 https://go.microsoft.com/fwlink/?LinkId=89396 "BizTalk Server 관련된 속성"을 참조하세요.

    이러한 속성을 사용하여 만든 메시지는 간청-응답 송신 포트를 사용하여 MQSeries 큐로 전송됩니다. 포트는 표시된 일치 옵션을 사용하여 지정한 URI에서 메시지를 받을 어댑터를 지정합니다. 다음 작업이 수행됩니다.

  • 메시지를 가져오는 필터 조건에 부합되는 경우 큐에서 메시지가 검색되어 오케스트레이션으로 다시 전송됩니다.

  • 메시지를 가져오는 필터 조건에 부합되지 않는 경우 더미 응답이 반환됩니다. 이것은 지정한 옵션에서 큐의 메시지가 반환되지 않았음을 나타냅니다.

    동적 수신 기능을 사용할 경우 고정된 수신 위치가 필요하지 않으므로 유연성이 향상됩니다. 런타임 시까지 URI를 알 수 없는 경우도 있습니다. 동적 수신 기능을 사용하면 메시지를 가져올 소스 위치를 동적으로 확인할 수 있습니다. 또한 오케스트레이션 내에 큐 계약을 구현할 필요가 없습니다. 지정한 일치 조건에 따라 동적으로 지정된 URI를 사용하여 MQSeries 큐에서 메시지를 가져오도록 기다리면 됩니다.

이 샘플이 있는 위치

< 샘플 경로>\Samples\AdaptersUsage\MQSeriesAdapter\DynamicReceive

다음 표는 이 샘플의 파일을 보여 주고 각각의 용도에 대해 설명합니다.

파일 Description
DynamicReceive.btproj,

DynamicReceive.sln
응용 프로그램에 대한 프로젝트 및 솔루션 파일입니다.
DynamicReceive e.odx 응용 프로그램에 대한 BizTalk 오케스트레이션 파일입니다.
Setup.bat 키 파일을 만들고 프로젝트를 컴파일한 다음 배포할 배치 파일입니다.

이 샘플의 사용 방법

솔루션에 적합한 Microsoft.XLANG.BaseTypes.Address 를 지정합니다. 응답 메시지를 받을 시기를 지정하도록 MQSeries.WaitInterval 을 변경합니다. 일치 옵션을 업데이트(또는 추가)하거나, 모든 메시지를 가져오려는 경우 일치 옵션을 제거합니다.

샘플 빌드 및 실행

샘플을 만들려면 다음을 수행하십시오.

  1. Microsoft Visual Studio에서 새 오케스트레이션 프로젝트를 만듭니다.

  2. BizTalk Server 메시지'Yes'MQSeries.DynamicReceive 속성을 로 설정하여 동적 수신 작업을 사용하도록 설정합니다.

  3. 포트 URI를 설정하여 메시지를 가져올 주소를 지정합니다.

  4. 선택적으로 다음 두 가지 속성을 지정할 수 있습니다.

    1. 메시지에서 MQSeries.WaitInterval 속성을 사용하여 메시지를 가져오기 전에 대기 간격을 지정합니다.

    2. 메시지 수신에 대한 일치 조건을 지정합니다. 자세한 내용은 "일치 옵션" 도움말을 참조하십시오.

  5. 오케스트레이션에서 다음 변수를 변경하여 메시지를 가져올 소스 위치를 지정합니다.

    • , queueManager서버. 식 셰이프 에서 URI를 빌드하는 데 사용됩니다.
  6. 필요에 따라 동적 큐 만들기 및 일치 옵션을 주석 처리하도록 셰이프를 수정합니다.

  7. 다음 방법 중 하나로 프로젝트를 빌드 및 배포할 수 있습니다.

    • 솔루션을 열고 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 클릭하여 프로젝트 속성을 봅니다. 서명 탭의 강력한 이름 키 파일 선택 드롭다운 상자에서 새로 만들기...>를 클릭합니다<. 그런 다음 키 파일 이름을 제공하고 배포합니다.

    • 또는 키 파일을 만들고 프로젝트를 빌드한 다음 배포하는 setup.bat 파일을 실행합니다.

이 샘플을 실행하려면

  1. 오케스트레이션을 BizTalk 호스트에 바인딩합니다.

  2. 오케스트레이션에서 만든 파일 수신 포트를 사용하도록 설정합니다. 파일 수신 위치를 c:\temp\in에서 적절한 파일 폴더로 변경합니다.

  3. 만들어진 두 송신 포트를 등록 및 시작합니다. 한 포트는 동적 간청-응답 포트 유형이고, 다른 포트는 파일 송신 포트이며 메시지가 전송될 큐입니다. 올바른 위치로 설정되었는지 확인합니다.

  4. 오케스트레이션을 시작하려면 입력 폴더에 파일을 넣습니다. MQSeries 어댑터를 호출하고 지정된 서버에서 MQSAgent2 COM+ 구성 요소를 호출하여 메시지를 가져옵니다. 받은 메시지는 파일 송신 포트에 지정된 폴더 위치에 나타납니다.

  5. 셰이프에 지정된 조건과 일치하는 메시지가 없으면 더미 메시지가 출력 폴더에 삭제됩니다. 일치 옵션을 사용하지 않도록 설정하려면 셰이프의 마지막 두 줄을 주석으로 처리합니다.

의견

  • 동적으로 큐를 만들지만 삭제하지 않는 경우 다음 오케스트레이션 인스턴스가 활성화될 때 오류가 발생합니다.

  • 동적으로 URI를 설정하는 다른 방법도 있지만 이 샘플에서는 하나의 옵션만 지정합니다. 예를 들어 메시지 컨텍스트에서 일부 속성을 읽어 URI를 설정할 수 있습니다.

  • 일치 옵션에 부합되는 메시지가 큐에 없는 경우 더미 메시지가 반환됩니다.

  • 이 샘플은 동적 송신 포트를 사용하므로 다시 시도 및 트랜잭션과 같은 기타 옵션을 지정해야 할 수도 있습니다. 메시지를 동적 간청-응답 포트로 보내기 전에 어댑터에 의해 노출된 컨텍스트 속성을 사용하여 이러한 옵션을 설정할 수 있습니다.

  • MQSAdapterAdmin2 인터페이스를 사용하여 MQSeries 큐를 동적으로 만들고 삭제할 수 있습니다. MQSeries 큐를 동적으로 만드는 방법에 대한 예제는 의 "큐 관리 지원"을 https://go.microsoft.com/fwlink/?LinkId=89400참조하세요.