파이프라인 구성 요소는 BizTalk 메시징 엔진과의 상호 작용을 위해 미리 정의된 인터페이스 집합을 구현하는 .NET 또는 COM 구성 요소입니다. 구성 요소의 기능에 따라 다른 인터페이스를 구현해야 합니다. 이 항목에서는 이러한 인터페이스 및 일부 메서드에 대해 설명합니다.
경고
COM을 사용하여 사용자 지정 파이프라인 구성 요소를 빌드하는 경우 MTA(다중 스레드 아파트먼트) 모델을 사용하도록 구성 요소를 구성해야 합니다. 그렇지 않으면 구성 요소 호출이 실패하고 E_NOINTERFACE 오류가 발생합니다.
IPipelineContext
모든 파이프라인 구성 요소는 IPipelineContext 메서드를 사용하여 모든 문서 처리 관련 인터페이스에 액세스할 수 있습니다. IPipelineContext 인터페이스는 다음과 같은 기능을 제공합니다.
구성 요소가 앰비언트 파이프라인 및 스테이지 설정을 검색할 수 있도록 허용합니다.
구성 요소에서 메시지 및 메시지 팩터리를 검색할 수 있습니다. 이러한 팩터리를 사용하면 구성 요소가 구성 요소 실행에 필요한 다양한 개체를 만들 수 있습니다.
구성 요소에서 문서 사양을 검색할 수 있습니다. 문서 사양은 XSD 스키마와 추가 주석입니다.
IBaseComponent
모든 파이프라인 구성 요소는 구성 요소에 대한 기본 정보를 제공하기 위해 이 인터페이스를 구현해야 합니다.
IComponent
어셈블러 및 디스어셈블러를 제외한 모든 파이프라인 구성 요소는 처리를 위해 BizTalk Server 엔진에서 메시지를 가져와서 처리된 메시지를 엔진에 다시 전달하기 위해 이 인터페이스를 구현합니다.
수행하다. 엔진에서 호출하여 입력 메시지를 구성 요소에 전달하고 구성 요소에서 처리된 메시지를 검색하는 메서드입니다.
IPropertyBag, IPersistPropertyBag
파이프라인 구성 요소는 구성 정보를 수신하기 위해 IPersistPropertyBag 을 구현해야 합니다. 이 인터페이스와 IPropertyBag 은 표준 인터페이스입니다. 이러한 인터페이스에 대한 자세한 내용은 Microsoft .NET Framework SDK(소프트웨어 개발 키트) 설명서를 참조하세요.
IDisassemblerComponent
디스어셈블 구성 요소는 입력 시 하나의 메시지를 수신하고 출력 시 0개 이상의 메시지를 생성하는 파이프라인 구성 요소입니다. 디스어셈블 구성 요소는 메시지 교환을 개별 문서로 분할하는 데 사용됩니다. 디스어셈블러 구성 요소는 처리를 위해 BizTalk Server에서 메시지를 가져와서 디스어셈블된 문서를 BizTalk Server로 다시 전달하려면 IDisassemblerComponent 인터페이스의 메서드를 구현해야 합니다.
| 메서드 | 설명 |
|---|---|
| 디스어셈블 | 들어오는 문서 pInMsg의 디스어셈블을 수행합니다. |
| GetNext |
디스어셈블러 실행으로 인해 발생한 메시지 집합에서 다음 메시지를 가져옵니다. 메시지가 더 이상 없으면 NULL 을 반환합니다. |
복구 가능한 교환 처리를 지원하는 디스어셈블러 구성 요소를 작성하는 경우 다음을 수행해야 합니다.
VirtualStream()에 래핑하여 입력 스트림을 검색할 수 있도록 합니다.
GetNext()에는 메시지가 잘못된 시기를 결정하는 논리가 있습니다. 메시지가 잘못된 경우, BTS.MessageDestination을 "SuspendQueue"로 설정하고 GetNext()에서 메시지를 반환합니다.
메시지가 좋은 경우, BTS.SuspendMessageOnRoutingFailure를 True로 설정하고, GetNext()에서 메시지를 반환합니다.
IAssemblerComponent
어셈블 구성 요소는 입력 시 여러 메시지를 수신하고 출력 시 하나의 메시지를 생성하는 파이프라인 구성 요소입니다. 어셈블 구성 요소는 메시지 교환 일괄 처리에 개별 문서를 수집하는 데 사용됩니다.
비고
이 BizTalk Server 릴리스에서는 어셈블 기능이 사용되지 않으므로 BizTalk Server는 항상 하나의 문서를 구성 요소 입력에 전달합니다.
어셈블러 구성 요소는 런타임에 BizTalk Server 엔진에서 호출하는 IAssemblerComponent 메서드를 구현합니다.
| 메서드 | 설명 |
|---|---|
| AddDocument | 문서 pInMsg 를 교환에 포함할 메시지 목록에 추가합니다. |
| 어셈블 | 이전 메서드에서 추가한 메시지에서 교환을 빌드합니다. 어셈블된 메시지에 대한 포인터를 반환합니다. |
IProbeMessage
모든 파이프라인 구성 요소(일반, 어셈블 또는 디스어셈블)는 메시지 검색 기능이 필요한 경우 IProbeMessage 를 구현할 수 있습니다. 검색 구성 요소는 FirstMatch 실행 모드가 있는 파이프라인 단계에서 사용됩니다. 이러한 단계에서 BizTalk Server는 구성 요소에 메시지를 제공하고 , Probe 메서드는 메시지의 시작을 검사하여 구성 요소가 메시지의 형식을 인식하는지 확인합니다.
| 메서드 | 설명 |
|---|---|
| 프로브 | 이 메서드는 pInMsg 메시지를 사용하고 형식이 인식되면 True 를 반환하고, 그렇지 않으면 False 를 반환합니다. |
INamedItem
관리 코드와 관리되지 않는 코드에서 문서 스키마에 액세스하기 위한 도우미 인터페이스입니다.
INamedItemList
관리 코드와 관리되지 않는 코드에서 문서 스키마에 액세스하기 위한 도우미 인터페이스입니다.
IDocumentSpec
파이프라인 구성 요소는 IDocumentSpec 인터페이스의 메서드를 사용하여 콘텐츠 속성을 컨텍스트 및 뒤로 이동, 문서 스키마 액세스 등과 같은 문서 관련 작업을 수행할 수 있습니다.
| 메서드 | 설명 |
|---|---|
| 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)를 참조하세요.