共用方式為


從協調流程範例執行標頭屬性存取

此部分範例示範 ESB 如何將 JMS 標頭中繼資料升階為訊息內容屬性,Microsoft BizTalk 內協調流程中的程式碼和元件可以存取。 此範例包含接收管線,其中包含將 JMS 標頭中繼資料升階為訊息內容屬性的 ESB JMS 元件實例。

接收埠會將訊息傳遞至名為 JMSRouter 的協調流程,以擷取 RfhUtil 公用程式指派的佇列名稱 (,並從訊息的內容屬性) 在標頭中繼資料中傳送。 協調流程會將此佇列名稱指派給動態傳送埠,並將訊息傳送至該埠。

埠的傳送管線包含 ESB JMS 元件的實例,會將訊息內容屬性降級為 JMS 標頭中繼資料。

執行 Header 屬性存取範例

  1. 如果 GlobalBank.ESB 應用程式尚未執行,請使用 BizTalk 管理主控台來啟動它。

  2. 執行 IBM RfhUtil 公用程式;選取名為 ESB 的佇列管理員。Jms。範例的第一個下拉式清單中的 Sample.QueueManager,以連線到此佇列管理員,如此範例的第 1 部分所示。

  3. 在第二個下拉式清單中,選取名為 ESB 的目標輸出佇列。Jms。樣品。SENDTOBIZTALK。

  4. 按一下 RfhUtil 公用程式中的 ReadFile 按鈕,然後流覽至名為 TEST-000128 的測試訊息檔。JMS 位於名為 \Source\Samples\JMS\Test\Data\Load\的子資料夾中。 此檔案包含一批 128 個測試訊息,但公用程式只會載入第一個訊息。

  5. 按一下 [RFH] 索引標籤,然後確定只選取 [ JMS ] 核取方塊。

  6. 按一下 [jms] 索引標籤,然後確定選取的 [ 回復佇列 ] 為 ESB。Jms。樣品。REPLY,且選取的 目的地佇列 為 ESB。Jms。樣品。DYNAMICQ2。

  7. 按一下 [主要] 索引標籤,然後按一下 [ 寫入 Q ] 按鈕,將訊息寫入佇列中。

  8. 應用程式執行延遲之後,ESB 輸出訊息會出現在 ESB 中。Jms。樣品。DYNAMICQ2佇列。 開啟 WebSphere 佇列總管,並流覽佇列以確認此情況。

範例的運作方式

在協調流程內,程式碼可以藉由將訊息載入 XmlDocument 實例來存取 JMS 標頭中的值,如下列程式碼所示。

if (null != InboundMsg(  
    Microsoft.Practices.ESB.JMS.Schemas.Property.MQRFH2_NameValueData))  
{     
  jmsInfo.LoadXml(InboundMsg(  
     Microsoft.Practices.ESB.JMS.Schemas.Property.MQRFH2_NameValueData));  
  if (null != jmsInfo)  
  {  
    if (null != jmsInfo.SelectSingleNode("//Dst"))  
    {  
      xElement = jmsInfo.SelectSingleNode("//Dst");  
      destinationQueue = xElement.InnerText.ToUpper(  
                         System.Globalization.CultureInfo.CurrentCulture);  
    }  
    if (null != jmsInfo.SelectSingleNode("//Rto"))  
    {  
      xElement = jmsInfo.SelectSingleNode("//Rto");  
      replyToQueue = xElement.InnerText.ToUpper(  
                     System.Globalization.CultureInfo.CurrentCulture);  
    }  
  }  
}  

此外,程式碼可以存取訊息的所有 MQMD 內容屬性。