產生並初始化傳送配接器
根據預設,傳送配接器不會具現化,直到第一個訊息傳遞至它們,稱為「延遲建立」的程式。預設延遲建立方法有助於節省系統資源。 傳送配接器在建立之後,就會存入快取,並維持到 BizTalk Server 服務停止為止。
功能列舉的InitTransmitterOnServiceStart成員會指示傳訊引擎在服務啟動時建立傳送配接器,而不是視需要使用預設延遲建立。
就訊息批次處理而言,傳送訊息的模型與接收訊息的不同。 在接收時,配接器是將內送訊息插入從傳訊引擎所取得的批次中。 在傳送時,傳訊引擎則是從配接器取得批次,並將要傳輸的訊息傳送到該配接器。 這兩種作業都使用傳輸 Proxy 來取得訊息批次物件。
傳送配接器初始化的方式
若要啟用組態並與傳輸 Proxy 繫結,配接器必須實作下列的組態介面:
IBTTransport
IBaseComponent
IBTTransportControl
IPersistPropertyBag
下列步驟描述初始化傳送配接器所涉及的事件順序:
當傳訊引擎初始化傳送配接器時,它會先執行適用于IPersistPropertyBag的QueryInterface,這是選擇性介面。 如果配接器實作 介面,處理常式組態會傳遞至 Load 方法呼叫中的配接器。 配接器會使用此資訊,確保其設定正確。
傳訊引擎會執行適用于 IBTTransportControl的QueryInterface,這是必要的介面。
引擎會呼叫 IBTTransportControl.Initialize,並傳入介面卡的傳輸 Proxy。
傳訊引擎會執行適用于 IBTTransmitter的QueryInterface。
如果傳訊引擎探索這個介面,配接器就會被視為非批次感知的傳輸器。
如果傳訊引擎未探索此介面,傳訊引擎會執行適用于IBTBatchTransmitter的QueryInterface,其探索表示配接器是批次感知傳輸器。
如果傳訊引擎未探索上述兩種介面,就會產生錯誤狀況,導致初始化失敗。 在未探索任何必要介面時,初始化會失敗。
下列圖表說明這個 API 呼叫序列;以藍色顯示的介面是由配接器實作。
配接器只要一旦初始化和設定,就可以傳送訊息。
下圖顯示在初使化傳送配接器時所涉及的物件互動。
初始化傳送配接器的工作流程
注意
配接器不應該封鎖呼叫中的傳訊引擎,例如 IBTTransportControl.Initialize 和 IPersistPropertyBag.Load。 在這些呼叫中執行過多的處理,可能會對服務啟動時間造成影響。