파이프라인 인터페이스 사용
파이프라인 구성 요소는 BizTalk 메시징 엔진과의 상호 작용을 위해 미리 정의된 인터페이스 집합을 구현하는 .NET 또는 COM 구성 요소입니다. 이 구성 요소의 기능에 따라 서로 다른 인터페이스를 구현해야 합니다. 이 항목에서는 이러한 인터페이스 및 해당 메서드 중 일부에 대해 설명합니다.
경고
COM을 사용하여 사용자 지정 파이프라인 구성 요소를 작성하는 경우 MTA(Multi-Threaded Apartment) 모델을 사용하도록 구성 요소를 구성해야 합니다. 그렇지 않으면 구성 요소를 호출할 때 E_NOINTERFACE 오류가 발생하여 실패합니다.
IPipelineContext
모든 파이프라인 구성 요소는 IPipelineContext 메서드를 사용하여 모든 문서 처리 관련 인터페이스에 액세스할 수 있습니다. IPipelineContext 인터페이스는 다음과 같은 기능을 제공합니다.
구성 요소가 앰비언트 파이프라인 및 단계 설정을 검색할 수 있도록 합니다.
구성 요소가 메시지 및 메시지 팩터리를 검색할 수 있도록 합니다. 구성 요소는 이러한 팩터리를 사용하여 구성 요소를 실행하는 데 필요한 다양한 개체를 만들 수 있습니다.
구성 요소가 문서 사양을 검색할 수 있도록 합니다. 문서 사양은 XSD 스키마 및 추가 주석입니다.
IBaseComponent
모든 파이프라인 구성 요소는 이 인터페이스를 구현하여 구성 요소에 대한 기본 정보를 제공해야 합니다.
IComponent
어셈블러와 디스어셈블러를 제외한 모든 파이프라인 구성 요소는 이 인터페이스를 구현하여 BizTalk Server 엔진에서 처리할 메시지를 가져오고 처리된 메시지를 다시 엔진으로 전달합니다.
Execute라는 하나의 메서드만 포함합니다. 입력 메시지를 구성 요소에 전달하고 처리된 메시지를 구성 요소에서 검색하기 위해 엔진에서 호출하는 메서드입니다.
IPropertyBag, IPersistPropertyBag
파이프라인 구성 요소는 구성 정보를 수신하려면 IPersistPropertyBag 을 구현해야 합니다. 이 인터페이스와 IPropertyBag 은 표준 인터페이스입니다. 이러한 인터페이스에 대한 자세한 내용은 Microsoft .NET Framework SDK(소프트웨어 개발 키트) 설명서를 참조하십시오.
IDisassemblerComponent
디스어셈블 구성 요소는 입력 시 한 개의 메시지를 받고 출력 시 0개 이상의 메시지를 생성하는 파이프라인 구성 요소입니다. 디스어셈블 구성 요소는 메시지의 교환을 개별 문서로 나누는 데 사용됩니다. 디스어셈블러 구성 요소는 처리를 위해 BizTalk Server 메시지를 가져와서 디스어셈블된 문서를 다시 BizTalk Server 전달하려면 IDisassemblerComponent 인터페이스의 메서드를 구현해야 합니다.
메서드 | Description |
---|---|
Disassemble | 들어오는 문서 pInMsg의 디스어셈블을 수행합니다. |
GetNext | 디스어셈블러 실행으로 생성된 메시지 집합에서 다음 메시지를 가져옵니다. 메시지가 더 이상 없으면 NULL 을 반환합니다. |
복구 가능한 교환 처리를 지원할 디스어셈블러 구성 요소를 작성하는 경우 다음을 수행해야 합니다.
입력 스트림을 VirtualStream()에 래핑하여 찾을 수 있도록 설정합니다.
GetNext()에 메시지가 불량인 경우를 결정하는 논리를 삽입합니다. 메시지가 불량이면 BTS.MessageDestination = "SuspendQueue"를 설정하고 GetNext()로 메시지를 반환합니다.
메시지가 양호하면 BTS.SuspendMessageOnRoutingFailure = True를 설정하고 GetNext()로 메시지를 반환합니다.
IAssemblerComponent
어셈블 구성 요소는 입력 시 여러 개의 메시지를 받고 출력 시 한 개 메시지를 생성하는 파이프라인 구성 요소입니다. 어셈블 구성 요소는 개별 문서를 교환 일괄 처리의 메시지로 모으는 데 사용됩니다.
참고
이 BizTalk Server 릴리스에서는 어셈블 기능이 사용되지 않으므로 BizTalk Server 항상 하나의 문서를 구성 요소 입력에 전달합니다.
어셈블러 구성 요소는 런타임에 BizTalk Server 엔진에서 호출하는 IAssemblerComponent 메서드를 구현합니다.
메서드 | Description |
---|---|
AddDocument | 교환에 포함될 메시지 목록에 문서 pInMsg 를 추가합니다. |
어셈블 | 이전 메서드가 추가한 메시지에서 교환을 빌드합니다. 어셈블된 메시지에 대한 포인터를 반환합니다. |
IProbeMessage
모든 파이프라인 구성 요소(일반, 어셈블 또는 디스어셈블)는 메시지 검색 기능이 필요한 경우 IProbeMessage 를 구현할 수 있습니다. 검색 구성 요소는 FirstMatch 실행 모드가 있는 파이프라인 단계에서 사용됩니다. 이러한 단계에서 BizTalk Server 구성 요소에 메시지를 제공하고 Probe 메서드는 메시지의 시작을 검사하여 구성 요소가 메시지 형식을 인식하는지 확인합니다.
메서드 | Description |
---|---|
프로브 | 이 메서드는 pInMsg 메시지를 사용하고 형식이 인식되면 True 를 반환하고 그렇지 않으면 False 를 반환합니다. |
INamedItem
관리 코드 및 관리되지 않는 코드에서 문서 스키마에 액세스하기 위한 도우미 인터페이스입니다.
INamedItemList
관리 코드 및 관리되지 않는 코드에서 문서 스키마에 액세스하기 위한 도우미 인터페이스입니다.
IDocumentSpec
파이프라인 구성 요소는 IDocumentSpec 인터페이스의 메서드를 사용하여 콘텐츠 속성을 컨텍스트 및 뒤로 이동, 문서 스키마 액세스 등과 같은 문서별 작업을 수행할 수 있습니다.
메서드 | Description |
---|---|
DocType | 현재 문서의 유형을 반환합니다. |
DocSpecName | 현재 문서의 사양 이름을 반환합니다. |
GetSchemaCollection | 현재 문서의 문서 스키마 목록을 반환합니다. |
GetBodyPath | 문서의 본문 부분이 시작하는 노드에 대한 XPath를 반환합니다. |
GetDistinguishedPropertyAnnotationEnumerator | 모든 고유 필드 속성 주석의 사전 열거자를 반환합니다. |
GetPropertyAnnotationEnumerator | 모든 속성 주석의 열거자를 반환합니다. |
IComponentUI
파이프라인 구성 요소는 파이프라인 디자이너 환경에서 사용할 이 인터페이스를 구현해야 합니다.
메서드 | 설명 |
---|---|
아이콘 | 이 구성 요소에 연결할 아이콘을 제공합니다. |
유효성 검사 | 파이프라인 디자이너는 파이프라인 컴파일 전에 이 메서드를 호출하여 모든 구성 속성이 올바르게 설정되었는지 확인합니다. |
Icon 속성은 IntPtr을 반환합니다. 다음 C# 예제에서는 IntPtr을 반환하는 방법을 보여줍니다.
static ResourceManager resManager = new ResourceManager("ResourceManager", Assembly.GetExecutingAssembly());
...
[Browsable(false)]
public IntPtr Icon
{
get
{
return ((Bitmap)resManager.GetObject("MyIcon")).GetHicon();
}
}
자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 IComponentUI 인터페이스(COM)를 참조하세요.