SubmitDirect(BizTalk Server 샘플)
SubmitDirect 샘플은 프로그래밍 방식으로 단방향 및 요청/응답 메시지를 에서 Microsoft BizTalk Server 제출하는 방법을 보여 줍니다. NET 기반 애플리케이션. 이 샘플에서는 어댑터에 BizTalk Server API를 사용하는 방법을 보여 줍니다. 또한 메시지를 BizTalk Server 제출하는 데 사용할 수 있는 Submit이라는 수신 어댑터를 제공합니다.
필수 구성 요소
이 샘플을 실행하기 전에 BizTalk Isolated 호스트 사용자 그룹에 속하는 사용자로 로그온했는지 확인합니다.
이 샘플의 용도
이 샘플은 BizTalk 어댑터와 관련된 다양한 작업 중에서 특히 다음 작업을 수행하는 방법을 보여 줍니다.
BizTalk Server 프로세스 외부에서 실행되는 격리된 어댑터로 작업합니다. Submit 어댑터는 BizTalk Server 프로세스 외부의 프로세스에 의해 생성되기 때문에 격리된 어댑터입니다(.NET 애플리케이션으로 시작).
BizTalk Server 메시지 일괄 처리를 제출합니다. 전송 어댑터는 일괄 처리 메시지 전송 기능을 사용하여 여러 메시지를 한 번에 전송합니다.
요청/응답 패러다임을 사용한 동기식 전송 및 단방향 패러다임을 사용한 비동기식 메시지 전송
BizTalk Server 어댑터를 등록합니다. 이 샘플은 어댑터 등록 방법 및 어댑터 등록을 자동화하는 등록 실행 파일을 제공하는 방법을 보여 줍니다.
이 샘플은 실제로는 다음과 같은 두 개의 샘플이 하나가 된 것입니다.
단방향 메시지의 일괄 처리 전송. 콘솔 애플리케이션 SubmitMessages.exe 명령줄에서 문자열을 가져와서 각각 BizTalk Server 별도의 메시지로 제출합니다. 이러한 제출된 각 메시지는 BizTalk Server 수신 위치에서 포착되고 통과 수신 및 송신 파이프라인을 통해 전송된 다음 텍스트 파일에 기록됩니다.
요청/응답 메시지의 전송. 콘솔 애플리케이션 SubmitRequest.exe 명령줄에 지정된 .xml 파일을 가져와서 BizTalk Server 제출합니다. 이 .xml 파일의 스키마는 두 개의 정수 필드를 포함하는 요소를 정의합니다. BizTalk Server .xml 파일을 선택하고 오케스트레이션을 사용하여 처리합니다(하나의 요청/응답 포트 포함). 또한 맵을 사용하여 요청에서 두 정수의 산물인 정수를 반환하는 XML 응답 메시지를 생성합니다. 콘솔 응용 프로그램은 응답을 받은 후 결과를 표시합니다.
이 샘플이 있는 위치
<샘플 경로>\AdaptersDevelopment\SubmitDirect\
다음 표는 이 샘플에 포함된 파일을 보여 주고 각각의 용도에 대해 설명합니다.
파일 | Description |
---|---|
Cleanup.bat | 어셈블리를 배포 취소 및 GAC(전역 어셈블리 캐시)에서 제거하고, 송신 및 수신 포트를 제거하고, 필요한 경우 Microsoft IIS(인터넷 정보 서비스) 가상 디렉터리를 제거합니다. |
Setup.bat | 이 샘플을 빌드하고 초기화합니다. |
SubmitDirect.sln | ProcessRequest 폴더에 BizTalk 프로젝트, 나머지 폴더에 Microsoft Visual C# 프로젝트를 포함하는 솔루션 파일 |
SubmitMessagesBinding.xml, SubmitRequestBinding.xml | 포트 바인딩과 같은 자동화된 설치에 사용됩니다. |
\ProcessRequest 폴더: DocIn.xsd, DocOut.xsd, Multiplier.odx, Multiply.btm, ProcessRequest.btproj |
요청/응답 시나리오에서 정수에 대한 곱하기를 수행하는 BizTalk 프로젝트를 제공합니다. |
\SubmitMessages 폴더: AssemblyInfo.cs, SubmitMessages.cs, SubmitMessages.csproj |
명령줄 문자열 매개 변수를 개별 메시지의 일괄 처리로 전달하는 콘솔 응용 프로그램에 Visual C# 프로젝트를 제공합니다. |
\SubmitRequest 폴더: AssemblyInfo.cs, DocInstance.xml, SubmitRequest.cs, SubmitRequest.csproj |
곱할 두 개의 정수를 포함하는 .xlm 파일을 전달하는 콘솔 응용 프로그램에 C# 프로젝트를 제공합니다. |
\TransportProxyUtils 폴더: AssemblyInfo.cs, MessageHelper.cs, MessagingAPIInterface.cs, MessagingAPIs.cs, ResponseCallBack.cs, TpBatchAsyncCallback.cs, TpBatchAsyncResult.cs, TpBatchStatus.cs, TransportProxyUtils.csproj |
동기식 및 비동기식 메시지 전송, 그리고 일괄 처리 및 단일 요청 메시지 전송을 위한 메서드를 구현하는 전송 어댑터의 실시간 부분에 C# 프로젝트를 제공합니다. |
\TransportProxyUtilsReg 폴더: AssemblyInfo.cs, RegisterAdapter.cs, TransportProxyUtilsReg.csproj |
어댑터를 BizTalk Server 등록하는 데 사용할 수 있는 코드를 보여 주는 Visual C# 프로젝트를 제공합니다. |
\TransportProxyUtilsUI 폴더: AssemblyInfo.cs, TransportProxyUtilsMgmt.cs, TransportProxyUtilsUI.csproj |
전송 어댑터의 사용자 인터페이스 부분에 대한 Visual C# 프로젝트를 제공합니다. |
샘플 빌드 및 초기화
SubmitDirect 샘플을 빌드하고 초기화하려면
명령 창에서 다음 폴더로 이동합니다.
<샘플 경로>\AdaptersDevelopment\SubmitDirect
다음 작업을 수행하는 Setup.bat 파일을 실행합니다.
이 샘플의 일괄 처리 전송 부분에 대해 다음 출력 폴더를 만듭니다.
<샘플 경로>\AdaptersDevelopment\SubmitDirect\Out
이 샘플에 대한 다양한 Visual Studio 프로젝트를 컴파일합니다.
제출 어댑터를 BizTalk Server 등록합니다.
BizTalk Server 수신 위치와 송신 및 수신 포트를 만들고 바인딩합니다.
참고
포트를 만들고 바인딩할 경우 이 샘플에 다음 경고가 표시됩니다.
Warning: Receive handler not specified for receive location "SubmitDirectRL"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.ProcessRequest.Multiplier"; updating with first available host.
이러한 경고는 무시해도 됩니다. (사용자 설치에서 이름 지정에 차이가 있을 수 있는 경우 이를 수용하기 위해 호스트 이름과 수신 핸들러가 바인딩 파일에서 생략되었습니다.)
수신 위치를 사용하도록 설정하고 송신 포트 및 오케스트레이션을 시작합니다.
참고
이 샘플을 실행하기 전에 BizTalk Server가 빌드 및 초기화 프로세스 동안 오류를 보고하지 않았는지 확인해야 합니다.
참고
Setup.bat 파일을 실행하지 않은 채 이 샘플에서 프로젝트를 열고 빌드하려는 경우 먼저 .NET Framework Strong Name 유틸리티(sn.exe)를 사용하여 강력한 이름 키 쌍을 만들어야 합니다. 이 키 쌍을 사용하여 결과 어셈블리를 등록합니다.
참고
Setup.bat가 변경한 내용을 실행 취소하려면 Cleanup.bat를 실행합니다. Setup.bat를 두 번째로 실행하기 전에 Cleanup.bat를 실행해야 합니다.
샘플 실행
이 샘플은 파일 어댑터를 사용하므로 BizTalk 호스트(BizTalkServerApplication)가 실행 중이어야 합니다. SubmitDirect 샘플을 실행하려면 다음 절차를 따르십시오.
SubmitDirect 샘플의 일괄 처리 전송 부분을 실행하려면
명령 창에서 다음 폴더로 이동합니다.
<샘플 경로>\AdaptersDevelopment\SubmitDirect\SubmitMessages\bin\Debug
SubmitMessages.exe 파일을 실행하여 명령줄에 여러 문자열을 전달합니다.
예: SubmitMessages msg1 msg2 msg3
출력 폴더 Out에서 만든 여러 텍스트 파일을 관찰합니다. 이러한 파일에는 명령줄에 전달된 문자열이 파일당 하나씩 포함됩니다.
SubmitDirect 샘플의 요청/응답 부분을 실행하려면
명령 창에서 다음 폴더로 이동합니다.
<샘플 경로>\AdaptersDevelopment\SubmitDirect\SubmitRequest\bin\Debug
SubmitRequest.exe 파일을 실행하여 적절한 .xml 파일 이름을 명령줄에 전달합니다.
예: SubmitRequest .. \.. \DocInstance.xml
콘솔에 표시되는 응답 XML 메시지를 확인합니다. 여기에는 곱하기 연산의 결과가 포함되어 있습니다.
의견
다른 응용 프로그램에서 전송 어댑터를 사용할 수 있습니다. 에서 사용할 수 있습니다. 프로그래밍 방식으로 메시지를 BizTalk Server 제출하는 NET 기반 코드입니다. 이 어댑터에 사용자 코드를 사용하려면 다음 절차를 따르십시오.
샘플 어댑터에 사용자 코드를 사용하려면
제출 어댑터를 BizTalk Server 등록합니다. 이 샘플에 제공된 Setup.bat 파일을 실행한 경우 어댑터를 등록하여 사용 준비를 마쳤어야 합니다. 그렇지 않으면 TransportProxyUtils.csproj, TransportProxyUtilsUI.csproj 및 TransportProxyUtilsReg.csproj 프로젝트를 빌드하여 마지막 프로젝트에 의해 생성되는 실행 파일인 RegisterAdapter.exe를 실행하여 전송 어댑터를 등록할 수 있습니다.
중요
64비트 컴퓨터에 BizTalk를 설치하는 경우 HKEY_CLASSES_ROOT\CLSID\ 레지스트리 항목의 모든 인스턴스를 RegisterAdapter.cs 파일의 HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ 변경합니다.
전송 어댑터를 사용하는 수신 위치를 가진 수신 포트를 만듭니다. 수신 위치의 주소를 지정합니다. 이 어댑터를 사용하는 수신 위치에서 고유한 문자열은 주소로 사용할 수 있습니다.
Visual Studio 프로젝트의 어셈블리 Microsoft.BizTalk.SDKSamples.AdaptersDevelopment.TransportProxyUtils.dll 참조합니다.
이 어셈블리에서 제공하는 다음 방법 중 하나 이상을 사용하여 BizTalk Server 메시지를 제출합니다.
메서드 Description SubmitMessage()
BeginSubmitMessage()
EndSubmitMessage()BizTalk Server 단방향 메시지를 제출하는 동기 및 비동기 메서드입니다. 메시지가 전송되는 수신 위치의 주소를 메시지 컨텍스트에 설정해야 합니다.
반환된 전송 상태(성공/실패)를 나타내는 부울 값SubmitMessages()
BeginSubmitMessages()
EndSubmitMessages()BizTalk Server 단방향 메시지 배열을 제출하는 동기 및 비동기 메서드입니다. 메시지가 전송되는 수신 위치의 주소를 메시지 컨텍스트에 설정해야 합니다.
반환된 전송 상태(성공/실패)를 나타내는 부울 값SubmitSyncMessage()
BeginSubmitSyncMessage()
EndSubmitSyncMessage()BizTalk Server 요청 메시지를 제출하는 동기 및 비동기 메서드입니다. 메시지가 전송되는 수신 위치의 주소를 메시지 컨텍스트에 설정해야 합니다.
응답 메시지가 반환됩니다.CreateMessageFromString() 문자열에서 BizTalk Server 메시지 개체를 만들고 메시지 컨텍스트에서 수신 위치 주소 속성을 설정합니다.
BizTalk 메시지 개체를 반환합니다.CreateMessageFromStream() 스트림에서 BizTalk Server 메시지 개체를 만들고 메시지 컨텍스트에서 수신 위치 주소 속성을 설정합니다.
BizTalk Server 메시지 개체를 반환합니다.매개 변수 및 이들 메서드의 반환 형식에 대한 자세한 내용은 TransportProxyUtils 폴더의 MessagingAPIInterface.cs를 참조하십시오.