파이프라인 도구
Microsoft BizTalk Server SDK(소프트웨어 개발 키트)와 함께 제공되는 파이프라인 도구를 사용하면 송신/수신 포트와 같은 BizTalk Server 환경을 구성하지 않고도 파이프라인이 제대로 작동하는지 확인할 수 있습니다. 파이프라인 도구는 다음 작업에도 사용할 수 있습니다.
서버 환경 외부에 있는 타사 파이프라인 구성 요소 디버깅
구문 분석 엔진의 오류 메시지 진단
컴파일, 배포, 배포 취소, 재컴파일 등의 부담 없이 다양한 스키마 실험
Flat File 및 XML assembler/disassembler 동작 탐색
디스어셈블러의 출력 보기, 승격된 메시지 컨텍스트 속성 및 속성 값 검색
disassembler 및 assembler 구성 요소 없이 송신/수신 파이프라인 실행(예: S/MIME decoder의 출력을 볼 수 있음)
전체 메시징 하위 시스템이 아닌 파이프라인만을 대상으로 세부 성능 측정
<설치 경로>\SDK\Utilities\PipelineTools
파이프라인 도구는 파이프라인 및 파이프라인 구성 요소(Flat File 및 XML assembler/disassembler 구성 요소)를 실행하고 디버깅하고 프로파일링하는 데 사용합니다.
다음 표는 파이프라인 도구 파일 및 그 용도에 대해 설명합니다.
파일 | Description |
---|---|
DSDump.exe | 플랫 파일 주석의 포함 여부에 관계없이 하나 이상의 XSD 스키마를 메모리 내에 간단하게 표시한 문서 스키마 구조를 덤프할 수 있습니다. 이 도구는 $Root$0$3$2와 같은 구문 분석 엔진 오류를 가져와 이를 해독하려는 경우에 유용하게 사용할 수 있습니다. $ 뒤의 숫자는 문서 스키마에 나타나는 0부터 시작하는 인덱스 또는 레코드를 의미합니다. |
FFAsm.exe | Flat File assembler 구성 요소를 실행합니다. 그러면 송신 파이프라인 에뮬레이션을 통해 구성 요소가 직접 호출되어 사용자의 XML 문서가 어떻게 플랫 파일 문서로 serialize되고 어셈블되는지 볼 수 있습니다. |
FFDasm.exe | Flat File disassembler 구성 요소를 실행합니다. 그러면 수신 파이프라인 에뮬레이션을 통해 구성 요소가 직접 호출되어 사용자의 플랫 파일 문서가 어떻게 하나 이상의 XML 문서로 구문 분석되고 디스어셈블되는지 볼 수 있습니다. |
Pipeline.exe | 송신 또는 수신 파이프라인을 실행하고 하나 이상의 입력 문서와 해당 파트, XSD 스키마 및 관련 정보를 받아 파이프라인이 실행된 후 출력 문서를 생성합니다. Pipeline.exe BizTalk Server 데이터베이스에 액세스하지 않으므로 실행 중에 BizTalk Server 데이터베이스에 액세스하는 BizTalk Framework 어셈블러 및 디스어셈블러 구성 요소가 포함된 파이프라인은 지원되지 않을 수 있습니다. |
XMLAsm.exe | XML assembler 구성 요소를 실행합니다. 그러면 송신 파이프라인 에뮬레이션을 통해 구성 요소가 직접 호출되어 사용자의 XML 문서가 어떻게 출력 XML 문서로 serialize되고 어셈블되고 envelope되는지 볼 수 있습니다. |
XMLDasm.exe | XML disassembler 구성 요소를 실행합니다. 그러면 수신 파이프라인 에뮬레이션을 통해 구성 요소가 직접 호출되어 사용자의 플랫 파일 문서가 어떻게 하나 이상의 XML 문서로 구문 분석되고 디스어셈블되고 unenvelop되는지 볼 수 있습니다. |
계속해서 아래 섹션에서는 각 파일에 대해 더 자세히 설명합니다.
DSDump.exe를 사용하면 플랫 파일 주석의 포함 여부에 관계없이 하나 이상의 XSD 스키마를 메모리 내에 간단하게 표시한 문서 스키마 구조를 덤프할 수 있습니다.
DSDump.exe (문서 스키마 덤프 도구)는 다음과 같은 명령줄 매개 변수를 지원합니다.
DSDump.exe schemaFileName
DSDump가 성공적으로 실행되면 문서 스키마가 콘솔로 출력됩니다.
FFAsm.exe(Flat File assembler)는 다음과 같은 명령줄 매개 변수를 지원합니다.
usage: ffasm document... [-dm documentMask...]-bs bodySchema [ -hs headerSchema ] [ -ts trailerSchema ] [ -c ] [ -d ] [ -sb ] [ -m filenamemask ] [ -en encoding ] [ -v ]
where:
document XML document(s)
documentMask XML document(s) file mask, e.g., c:\\documents\\*.xml
bodySchema Flat File body schema
headerSchema Flat File header schema
trailerSchema Flat File trailer schema
-c Display assembled FF message on the console
-d Demote properties
-sb Set body schema(s) as design-time property
-m Output file name mask (default is %MessageID%)
encoding Output message encoding name (e.g. windows-1252) or
code page (e.g. 936)
-v Verbose mode
file name macros:
%MessageID% FF message identifier (Guid)
%MessagePartID% FF message part identifier (Guid)
예를 들어 하나의 헤더 및 속성 강등이 있는 단일 플랫 파일 문서에 세 개의 입력 XML 문서를 어셈블하려면 다음 명령을 사용하십시오.
FFAsm.exe file_in1.xml file_in2.xml file_in3.xml –hs myHeaderSchema.xsd –bs myBodySchema.xsd -d
FFDasm.exe(Flat File disassembler)는 다음과 같은 명령줄 매개 변수를 지원합니다.
usage: ffdasm document -bs bodySchema [ -hs headerSchema ] [ -ts trailerSchema ] [ -s ] [ -c ] [ -p ] [ -m filenamemask ] [ -en encoding ] [ -v ]
where:
document Flat File document
bodySchema Flat File body schema
headerSchema Flat File header schema
trailerSchema Flat File trailer schema
-s Validate document structure
-c Display disassembled XML message on the console
-p Display promoted properties on the console
encoding Input message body part encoding name (e.g. windows-1252) or code page (e.g., 396)
-m Output file name mask (default is %MessageID%)
-v Verbous mode
file name macros:
%MessageID% XML message identifier (Guid)
%MessagePartID% XML message part identifier (Guid)
예를 들어 하나의 헤더, 본문 및 트레일러가 있는 플랫 파일 문서를 디스어셈블하고 그 결과를 콘솔에 표시하려면 다음 명령을 사용하십시오.
FFDasm.exe file_in.txt –hs myHeaderSchema.xsd –bs myBodySchema.xsd –ts myTrailerSchema.xsd –c
Pipeline.exe(파이프라인 도구)는 다음과 같은 명령줄 매개 변수를 지원합니다.:
usage: pipeline ( pipeline[.btp] | -pt pipelineTypeName [ -an assemblyName ] ) -d document... [ -part part... ] [ -s schema[.xsd][:namespace.type]... ] [ -proj project[.btproj] ] [ -p ] [ -c ] [ -t ] [ -m filenamemask ] [ -pm partfilenamemask ] [ -en encoding ] [ -v ]
where:
pipeline Pipeline file name
pipelineTypeName Compiled pipeline assembly qualified type name (e.g.
"MyPipelines.ReceivePipeline, MyPipelines,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=e03965cb5971ad66" or full name (e.g.
"MyPipelines.ReceivePipeline") if assembly name is
specified
assemblyName Compiled pipeline assembly file name (e.g.
MyPipelines.dll) or name (e.g. "MyPipelines,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=e03965cb5971ad66")
document Input document(s)
part Input document's part
schema Schema file name
namespace Schema namespace (as in BizTalk project system)
type Schema type (as in BizTalk project system)
project BizTalk project file
-p Display promoted context properties for receive and
send pipelines, and promote context properties for
send pipelines
-c Display output document on the console
-t Display elapsed time of components execution
filenamemask Output message file name mask (default is
Message_%MessageID%.out)
partfilenamemask Output part file name mask (default is
Part_%MessagePartID%.out)
encoding Output message encoding name (e.g. windows-1252)
or code page (e.g. 936)
-v Verbous mode
note:
You can specify namespace and type for schemas either using namespace.type notation in schema file reference or by using BizTalk project file.
file name macros:
%MessageID% Message identifier (Guid)
%MessagePartID% Message part identifier (Guid)
%MessageNumber% Message number
예를 들어 mySchema.xsd를 사용하여 XML disassembler 및 XML Validator 구성 요소가 있는 ReceivePipeline.btp 파일에서 수신 파이프라인을 실행하고 그 결과를 콘솔에 표시하려면 다음 명령을 사용하십시오.
Pipeline.exe ReceivePipeline.btp –d file_in.xml –s MySchema.xsd:MyProject.MySchema -c
- 또는 -
Pipeline.exe ReceivePipeline.btp –d file_in.xml –s MySchema.xsd –proj MyProject.btproj -c
첫 번째 예제에서는 스키마에 대한 정규화된 형식 이름(MyProject.MySchema)이 명령줄 인수로 포함됩니다. 두 번째 예제에서는 지정된 BizTalk 프로젝트 파일에서 스키마를 가져옵니다.
다음 예제와 같이 컴파일된 BizTalk Server 프로젝트 파일에서 파이프라인을 실행할 수도 있습니다(파이프라인은 해당 어셈블리 정규화된 형식 이름으로 참조됨).
Pipeline.exe -pt "TestBtsProject.ReceivePipeline, TestBtsProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e03965cb5971ad66" -d in.xml -s PO.xsd -proj TestBtsProject.btproj –c
다음 예제에서는 각 파이프라인의 유형 이름 및 어셈블리 파일 이름으로 파이프라인이 참조됩니다.
Pipeline.exe -pt TestBtsProject.ReceivePipeline –an TestBtsProject.dll -d in.xml -s PO.xsd -proj TestBtsProject.btproj –c
다음 예제는 어셈블리 이름으로 참조되는 파이프라인을 보여 줍니다.
Pipeline.exe -pt TestBtsProject.ReceivePipeline –an "TestBtsProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e03965cb5971ad66" -d in.xml -s PO.xsd -proj TestBtsProject.btproj –c
Pipeline.exe는 파이프라인을 시작하는 데 사용된 자격 증명을 사용하여 실행되며, 일반 BizTalk Server 호스트 인스턴스가 실행되는 계정을 사용하지 않으므로 데이터베이스 액세스가 필요한 구성 요소가 포함된 파이프라인을 실행하지 못할 수 있습니다. 필요한 권한이 모두 있는 계정에서 Pipeline.exe를 실행하십시오.
타사 사용자 지정 구성 요소가 없는 사용자 지정 파이프라인을 확인하는 데만 Pipeline.exe를 사용해야 합니다. 타사 사용자 지정 구성 요소가 있는 사용자 지정 파이프라인을 확인하는 데 Pipeline.exe를 사용하더라도 원하는 출력이 생성됩니다. 하지만 타사 사용자 지정 구성 요소가 있는 동일한 사용자 지정 파이프라인을 배포하고 수신 또는 송신 포트에서 파이프라인을 사용한 다음 Pipeline.exe를 사용하여 파이프라인에 메시지를 전송하면 파이프라인에서 오류가 발생하고 BizTalk Server에서 오류를 반환합니다.
XMLAsm.exe(XML 어셈블러 도구)는 다음 명령줄 매개 변수를 지원합니다.
usage: xmlasm document...[-dm documentmask...] -ds documentSchema... [ -es envelopeSchema... ] [ -c ] [ -d ] [ -sd ] [ -m filenamemask ] [ -v ]
where:
document XML document(s)
documentMask XML document(s) file mask, e.g., c:\\documents\\*.xml
documentSchema XML document schema(s)
envelopeSchema XML envelope schema(s)
-c Display assembled XML message on the console
-d Demote properties
-sd Set document schema(s) as design-time property
-d Demote properties
-m Output file name mask (default is %MessageID%)
-v Verbous mode
file name macros:
%MessageID% XML message identifier (Guid)
%MessagePartID% XML message part identifier (Guid)
예를 들어 하나의 봉투(Envelope)가 있는 단일 XML 문서에 두 개의 입력 XML 문서를 어셈블하고 그 결과를 콘솔에 표시하려면 다음 명령을 사용하십시오.
FFAsm.exe file_in1.xml file_in2.xml–es myEnvelopeSchema.xsd –ds myBodySchema.xsd –c
XMLDasm.exe는 다음과 같은 명령줄 매개 변수를 지원합니다.
usage: xmldasm document -ds documentSchema... [ -es envelopeSchema... ] [ -s ] [ -c ] [ -p ] [ -sd ] [ -se ] [ -m filenamemask ] [ -en encoding ] [ -v ]
where:
document XML document
documentSchema XML document schema(s)
envelopeSchema XML envelope schema(s)
-s Validate document structure
-c Display disassembled XML message on the console
-p Display promoted properties on the console
-sd Set document schema(s) as design-time property
-se Set envelope schema(s) as design-time property
-m Output file name mask (default is %MessageID%)
encoding Input message body part encoding name (e.g., windows-1252) or code page (e.g., 936)
-v Verbous mode
file name macros:
%MessageID% XML message identifier (Guid)
%MessagePartID% XML message part identifier (Guid)
%MessageNumber% XML message number
예를 들어 두 개의 중첩 봉투(Envelope)가 있는 XML 문서를 디스어셈블하고 그 결과를 콘솔에 표시하려면 다음 명령을 사용하십시오.
XmlDasm.exe file_in.txt –ds myDocumentSchema.xsd –es myEnvelopeSchema1.xsd –es myEnvelopeSchema2.xsd –c