共用方式為


DynamicReceive 範例 (BizTalk Server 範例)

DynamicReceive 範例示範如何在指定 MQSeries 佇列的 URI 動態時,從 MQSeries 佇列接收BizTalk Server訊息。

此範例的用途

此範例會動態建立 MQSeries 佇列,如 queueManagerqueue伺服器 變數所指定。 它會啟用動態接收案例,並根據MQMD_MsgId和MQMD_CorrelId訊息屬性中指定的篩選準則,從動態指定的 MQSeries 佇列取得BizTalk Server訊息。

此範例的設計方式和原因

MQSeries 配接器可以透過在協調流程中指定佇列的 URI 位址,從 MQSeries 佇列動態接收訊息。 您可以在協調流程中使用請求-回應傳送埠來達成這項功能。

若要動態接收訊息,請在協調流程的 運算式 圖形中指定下列內容:

  1. 在BizTalk Server訊息上設定下列屬性來啟用動態接收:MQSeries.DynamicReceive = 'Yes'

  2. 設定連接埠 URI,以指定取得訊息的來源位址。 您可以選擇指定下列選項:

    • 使用訊息上的 MQSeries.WaitInterval 屬性,指定取得訊息之前的等候間隔。

    • 指定接收訊息的比對準則。 比對準則選項包括 訊息識別碼CorrelationIDGroupIDMessageSequenceNumber。 See "Properties Related to BizTalk Server" at https://go.microsoft.com/fwlink/?LinkId=89396 for more details.

    使用這些屬性建立訊息之後,便會使用請求-回應傳送埠將它傳送到 MQSeries 佇列。 這個傳送埠會使用指定的比對選項,讓配接器從指定的 URI 接收訊息。 產生的結果如下:

  • 如果符合用來取得訊息的篩選準則,便會從佇列擷取訊息,然後再將訊息傳回給協調流程。

  • 如果不符合用來取得訊息的篩選準則,則會傳回虛擬回應。 這表示指定的選項並未從佇列傳回任何訊息。

    使用動態接收功能可以讓您擁有更多的彈性,因為您不需要有固定的接收位置。 在某些情況下,您可能必須等到執行階段才會知道 URI。 動態接收功能可讓您動態決定訊息的取得來源。 這也表示您不需要在協調流程內實作佇列合約。 您可以等待,以根據指定的比對準則,使用動態指定的 URI 從 MQSeries 佇列取得訊息。

可在何處找到此範例

<範例路徑>\Samples\AdaptersUsage\MQSeriesAdapter\DynamicReceive

下表顯示此範例中的檔案,並描述其用途。

檔案 描述
DynamicReceive.btproj,

DynamicReceive.sln
應用程式的專案和方案檔。
DynamicReceive e.odx 應用程式的 BizTalk 協調流程檔案。
Setup.bat 用來建立金鑰檔、編譯專案及部署專案的批次檔。

如何使用此範例

指定對您解決方案有意義的 Microsoft.XLANGs.BaseTypes.Address 。 變更 MQSeries.WaitInterval ,以指定何時預期會收到回應訊息。 更新 (或加入) 比對選項;如果您想取得所有訊息,則請移除比對選項。

建置並執行範例

若要建立範例

  1. 在 Microsoft Visual Studio 中建立新的協調流程專案。

  2. 將BizTalk Server訊息上的MQSeries.DynamicReceive屬性設定為 'Yes' ,以啟用動態接收作業。

  3. 藉由設定 埠 URI,指定要從中取得訊息的位址。

  4. 可以選擇指定下列兩個選項:

    1. 使用訊息上的 MQSeries.WaitInterval 屬性,指定取得訊息之前的等候間隔。

    2. 指定接收訊息的比對準則。 如需詳細資訊,請參閱「比對選項」說明。

  5. 在協調流程中變更下列變數,以指定取得訊息的來源:

    • QueuequeueManager伺服器。 這些是用來在 運算式 圖形中建置 URI。
  6. 修改 運算式 圖形,視需要將動態佇列建立和比對選項批註化。

  7. 您可以使用下列其中一種方法來建置及部署專案:

    • 開啟方案,以滑鼠右鍵按一下 [方案總管] 中的專案,然後按一下 [ 屬性 ] 以檢視專案屬性。 在 [簽署] 索引標籤上,按一下< [選擇強式名稱金鑰檔案] 下拉式方塊中的 [新增... >]。 然後提供金鑰檔案名並部署。

    • 或者,執行用來建立金鑰檔、建置專案及部署專案的 setup.bat 檔案。

執行範例

  1. 將協調流程繫結到 BizTalk 主控件。

  2. 啟用協調流程建立的檔案接收埠。 將檔案接收位置從 c:\temp\in 變更為適當的檔案資料夾。

  3. 登錄並啟動建立的兩個傳送埠。 其中一個連接埠屬於動態的請求-回應連接埠類型,另一個則是檔案傳送埠,也是傳送訊息的佇列。 請務必將它設定為正確的位置。

  4. 若要啟動協調流程,請將檔案放到輸入資料夾中。 這會叫用 MQSeries 配接器,並在指定的伺服器上呼叫 MQSAgent2 COM+ 元件以取得訊息。 接收訊息會出現在檔案傳送埠中指定的資料夾位置。

  5. 如果找不到符合 運算式 圖形中所指定準則的訊息,則會將虛擬訊息放入輸出檔案夾中。 若要停用比對選項,請將 運算式 圖形中的最後兩行批註化。

註解

  • 如果佇列採動態方式建立,但卻不會動態刪除,則在啟動下一個協調流程時,將會發生錯誤。

  • 雖然這個範例只指定了一種選項,但是還有其他方法可以動態設定 URI。 例如,URI 可以透過讀取訊息內容中的某個屬性來設定。

  • 如果佇列中沒有任何訊息符合比對選項,便會傳回虛擬訊息。

  • 因為這個範例使用的是動態傳送埠,所以可能必須指定其他選項,例如重試和交易。 將訊息傳送到動態請求-回應連接埠之前,請先使用配接器所公開的內容屬性來設定這些選項。

  • 您可以使用 MQSAdapterAdmin2 介面,動態建立和刪除 MQSeries 佇列。 如需如何動態建立 MQSeries 佇列的範例,請參閱 中的 https://go.microsoft.com/fwlink/?LinkId=89400 「佇列管理支援」。