共用方式為


彙總工具 (BizTalk Server 範例)

此範例的目的是要建置使用協調流程和管線的訊息彙總功能。 具體而言,我們將會建立可執行下列作業的協調流程:

  1. 接收一組相互關聯的訊息。 訊息會根據從訊息內容擷取的目的地夥伴 URI 資訊來進行相互關聯。

  2. 藉由執行 XML 傳送管線,將接收的訊息彙總到單一的交換批次。

  3. 每分鐘產生一次 XML 交換訊息,或是在有足夠彙總數量的訊息時立即產生。

可在何處找到此範例

< 範例路徑 >\Pipelines\匯總工具

下表列出此範例使用的檔案。

檔案 描述
Aggregator.sln 此範例的 Visual Studio 方案檔案。
AggretatorBinding.xml 此範例的繫結檔案。
Cleanup.bat 用來解除部署組件,並將這些組件從全域組件快取 (GAC) 移除。 移除傳送埠和接收埠。 視需要移除 Microsoft Internet Information Services (IIS) 虛擬目錄。
Setup.bat 用來建置和初始化此範例。
在 [Aggregate] 資料夾中:

Aggregate.btproj
彙總協調流程所使用的 BizTalk 專案。
在 Aggregator 資料夾中:

Aggregate.odx
協調流程,其可將相互關聯的訊息收集在一起,然後執行傳送管線,將這些訊息組合成單一個交換。
在 [Aggregate] 資料夾中:

SuspendMessage.odx
協調流程,用於擱置無法在彙總協調流程內處理的訊息。
在 PipelinesAndSchemas 資料夾中:

FFReceivePipeline.btp
具有一般檔案解譯器的接收管線
在 PipelinesAndSchemas 資料夾中:

Instance1.txt、Instance2.txt、Instance3.txt、Instance4.txt
此範例的文件執行個體。 Instance1.txt 和 Instance2.txt 應該新增至目的地夥伴 http://www.contoso.com 的交換,而 Instance3.txt 和 Instance4.txt 應該新增至目的地夥伴 http://www.northwind.com 的交換。
在 PipelinesAndSchemas 資料夾中:

Invoice.xsd、InvoiceEnvelope.xsd
輸出交換的文件結構描述和信封結構描述。
在 PipelinesAndSchemas 資料夾中:

PipelinesAndSchemas.btproj
結構描述和管線的 BizTalk 專案。
在 PipelinesAndSchemas 資料夾中:

PropertySchema.xsd
此範例的屬性結構描述。
在 PipelinesAndSchemas 資料夾中:

XMLAggregatingPipeline.btp
傳送管線,其將從協調流程執行,以便將收集到的訊息組合成 XML 交換。

建置和初始化範例

請使用下列程序,建置和初始化此「彙總工具」範例。

若要建置和初始化此彙總工具範例

  1. 在命令視窗中,瀏覽至下列資料夾:

    <範例路徑 > \Pipelines\匯總工具

  2. 執行檔案 Setup.bat,這會執行下列動作:

    • 在此資料夾中建立此範例的輸入 (In) 和輸出 (Out) 資料夾。

      <範例路徑 > \Pipelines\匯總工具

    • 編譯此範例的 Visual Studio 專案。

    • 建立稱為 "Aggregator Sample" 的新應用程式,並在其中部署此範例組件。

    • 建立並繫結 BizTalk Server 接收位置以及傳送和接收埠。

    • 登錄和啟動協調流程、啟用接收位置,並啟動傳送埠。

      若您選擇不執行 Setup.bat 檔案就開啟和建置此範例中的專案,您必須先使用 .NET Framework Strong Name Utility (sn.exe) 建立強式名稱金鑰組。 這個金鑰組的用途是簽署產生的組件。

  3. 在嘗試執行此範例之前,請確認 BizTalk Server 未在建置和初始化期間報告任何錯誤。

    若要復原 Setup.bat 所進行的變更,請執行 Cleanup.bat。 您必須先執行 Cleanup.bat 才能再度執行 Setup.bat。

執行範例

請使用下列程序執行「彙總工具」範例。

若要執行此彙總工具範例

  1. 開啟位於 PipelinesAndSchemas 資料夾中的 Instance1.txt 和 Instance2.txt 檔案,檢查其內容。

    請注意,在這兩個檔案中,DestinationPartnerURI 元素都包含 值 http://www.contoso.com 。 這個值會用來將這兩個訊息相互關聯,如此它們就可加入到同一個交換中。

    同樣地,Instance3.txt 和 Instance4.txt 檔案的 DestinationPatnerURI 元素設定為 http://www.northwind.com

    這兩個訊息會一起加入到另一個交換中。

  2. 將文字檔 Instance1.txt、Instance2.txt、Instance3.txt 和 Instance4.txt 複本貼到 [In] 資料夾中。

  3. 彙總協調流程會在收集到 10 則訊息後立即產生輸出交換,或是在 1 分鐘逾時後產生輸出交換。 因此,在 Out 資料夾中的檔案可能會延遲出現。

    若要避免逾時,您可以將四個輸入檔案再貼上四次,以便觸發彙總協調流程產生交換。

  4. 觀察在 Out 資料夾中建立的 XML 檔案。每個目的地夥伴 URI 都應該有兩個檔案– 每個目的地夥伴 URI 各一個檔案。

    開啟一個檔案檢查其內容。 該檔案應該包含由一個信封和兩個內部 XML 文件所組成的 XML 交換。

    注意

    此範例實作可能會於群組實例中的高負載情況下,造成「已傳遞,未使用訊息」或「完成並有捨棄的訊息」的問題。 每當訊息路由至已經在結束階段的商務程序時,或是每當有未預期的訊息抵達到商務程序時,就會發生這種情況。

另請參閱

管線 (BizTalk Server Samples 資料夾)