本主題提供建立 BizTalk Server 接收位置、接收埠和傳送埠的相關信息,以執行 步驟 1:建立單元測試以將檔提交至 BizTalk Server 和 步驟 3:建立負載測試以同時執行多個單元測試中所述的程式代碼。
設定 BizTalk Server 環境以進行負載測試
如步驟 3:建立負載測試以同時執行多個單元測試主題所述,負載測試BTS_Messaging_Step設定為執行單元測試 BTSMessaging 和 BTSMessaging2。 接著,這些單元測試會載入訊息復本 C:\Projects\LoadTest\BTSLoad\TestMessages\TestXmlDocument.xml,並將其傳送至專案應用程式組態 (app.config) 檔案下一節所定義的 BTSMessagingEP 和 BTSMessagingEP2 端點:
<-- BTSMessagingEP --><endpoint address=“net.tcp://BizTalk Server Computer:8123/btsloadtest” binding=“netTcpBinding” bindingConfiguration=“netTcpBinding” contract=“System.ServiceModel.Channels.IRequestChannel” name=“BTSMessagingEP” /><endpoint address=“net.tcp://BizTalk Server Computer:8123/btsloadtest” binding=“netTcpBinding” bindingConfiguration=“netTcpBinding” contract=“System.ServiceModel.Channels.IRequestChannel” name=“BTSMessagingEP2” />
備註
如先前所述, BizTalk Server 計算機是實際 BizTalk Server 計算機 名稱的佔位元,或在 BizTalk Server 計算機設定為網路負載平衡 (NLB) 叢集的成員時; BizTalk Server 計算機 是對應 NLB 虛擬伺服器名稱或位址的佔位元。
基於此範例的目的,使用了兩部 BizTalk Server 計算機,而 BizTalk Server 消息框資料庫位於遠端 SQL Server 計算機上。
建立 BizTalk Server 傳送和接收主機
請遵循 BizTalk Server 文件主題 如何建立新的主機 中的步驟,以建立 BizTalk Server 用於傳送埠和傳送配接器處理程式的「傳送」主機。 使用下列屬性設定主機:
| 房產 | 價值觀 |
|---|---|
| 名稱 | TxHost |
| 類型 | In-Process |
| 允許主機追蹤 | 請確定此方塊沒勾選。 |
| 驗證信任 | 請確定此方塊是未選中的。 |
| 僅支持32位 | 請確定此方塊未核取。 |
| 將此設為群組中的預設主機 | 請確保未勾選該選框。 |
| Windows 群組 | 用來控制此主機和相關聯主機實例存取權的 Windows 群組。 為預設進程主機建立的視窗群組會命名為 <計算機名稱>\BizTalk 應用程式使用者(針對單一伺服器 BizTalk Server 安裝)或 <功能變數名稱>\BizTalk 應用程式使用者(針對多部伺服器 BizTalk Server 安裝,需要使用網域群組)。
注意:<計算機名稱和><功能變數名稱>是建立群組時所使用之實際計算機名稱或功能變數名稱的佔位元。 如果為此主機建立新的群組,則必須具有 主機群組主題中所述的許可權。 |
重複建立「傳送」主機以建立「接收」主機時所遵循的步驟。 請將 "接收" 主機設定為以下屬性值:
| 房產 | 價值觀 |
|---|---|
| 名稱 | RxHost |
| 類型 | In-Process |
| 允許主機追蹤 | 請確保此方塊為未選取狀態。 |
| 驗證信任 | 請確定此方塊未勾選。 |
| 僅限32位元 | 請確定此方塊未核取。 |
| 將此設為群組中的預設主機 | 請確保此方塊未被勾選。 |
| Windows 群組 | 用來控制此主機和相關聯主機實例存取權的 Windows 群組。 為預設進程主機建立的視窗群組會命名為 <計算機名稱>\BizTalk 應用程式使用者(針對單一伺服器 BizTalk Server 安裝)或 <功能變數名稱>\BizTalk 應用程式使用者(針對多部伺服器 BizTalk Server 安裝,需要使用網域群組)。
注意:<計算機名稱和><功能變數名稱>是建立群組時所使用之實際計算機名稱或功能變數名稱的佔位元。 如果為此主機建立新的群組,則必須具有 主機群組主題中所述的許可權。 |
建立 BizTalk Server 傳送和接收主機的實例
請遵循 BizTalk Server 檔主題如何新增主機執行個體中的步驟來建立和啟動 BizTalk Server「傳送」主機的執行個體。 設定 「傳送」主機的實例,以在 BizTalk Server 群組中的每個 BizTalk Server 上執行,並使用下列屬性值設定每個主機實例:
| 房產 | 價值觀 |
|---|---|
| 主機名稱 | 從 [主機名] 旁的下拉式清單中選取 [TxHost]。 |
| 伺服器 | 從 [伺服器] 旁的下拉式清單中選取將執行此主機實例的 BizTalk Server。 |
| 登入 | 1.按兩下 [ 設定 ] 按鈕以顯示 [ 登入認證 ] 對話框。 2.在 [ 登入認證] 對話框中,輸入下列指定屬性的值: 財產 登入:屬於與此 BizTalk Server 主機相關聯之 Windows 群組成員的用戶帳戶名稱。 密碼: [登入 ] 文本框中所指定用戶帳戶的密碼。 3.按兩下 [確定 ] 關閉 [ 登入認證 ] 對話框。 |
| 停用主機實例的啟動功能。 | 請確定此方塊沒有被勾選。 |
建立主機實例之後,以滑鼠右鍵按兩下主機實例,然後從作功能表中選取 [ 開始 ]。
重複建立「傳送」主機實例時所遵循的步驟,以建立「接收」主機實例。 設定 「接收」主機的實例,以在 BizTalk Server 群組中的每個 BizTalk Server 上執行,並使用下列屬性值設定每個主機實例:
| 房產 | 價值觀 |
|---|---|
| 主機名稱 | 從 [主機名] 旁的下拉式清單中選取 [RxHost]。 |
| 伺服器 | 從 [伺服器] 旁的下拉式清單中選取將執行此主機實例的 BizTalk Server。 |
| 登入 | 1.按兩下 [ 設定 ] 按鈕以顯示 [ 登入認證 ] 對話框。 2.在 [ 登入認證] 對話框中,輸入下列指定屬性的值: 財產 登入:屬於與此 BizTalk Server 主機相關聯之 Windows 群組成員的用戶帳戶名稱。 密碼: [登入 ] 文本框中所指定用戶帳戶的密碼。 3.按兩下 [確定 ] 關閉 [登入認證] 對話框。 |
| 停用主機實例以防止啟動 | 請確定此方塊取消勾選。 |
建立主機實例之後,以滑鼠右鍵按兩下主機實例,然後從作功能表中選取 [ 開始 ]。
建立 BizTalk Server 接收埠
遵循 BizTalk Server 檔中如何建立接收埠 主題中的步驟,以建立 One-Way 接收埠。 建立接收埠時,請將所有屬性保留為預設值,但如下表所述:
| 房產 | 價值觀 |
|---|---|
| 一般\名稱 | BTSLoadTestMessaging.OneWay.ReceivePort(BTS負載測試消息.單向.接收端口) |
| 一般\介面類型 | One-Way |
| 一般\驗證 | 無驗證 |
| 一般\啟用路由以處理失敗訊息 | 請確定此方塊沒有被勾選。 |
| 一般\描述 | 保留空白 |
| 進入地圖 | 沒有 |
| 追蹤 | 確定未核取所有方塊。 |
| 接收點位置 | 按兩下 [新增],這會顯示 [ 接收位置屬性 ] 對話框,此對話框應如下一節建立 BizTalk Server 接收位置中所述進行設定。 |
建立 BizTalk Server 接收位置
在建立 BizTalk Server 接收埠時顯示的 [ 接收位置屬性 ] 對話框中,套用指定的屬性值:
| 房產 | 價值觀 |
|---|---|
| 名稱: | BTSLoadTest.Messaging.OneWay.WCF-Customer.ReceiveLocation |
| 接收器處理程式: | RxHost |
| 接收管線: | PassThruReceive |
| 描述: | 將此保留空白 |
| 類型: | 從下拉式清單中選取 [WCF-Custom ],然後按兩下 [ 設定 ] 按鈕,這會顯示 [WCF-Custom 傳輸屬性 ] 對話框,如下列小節所述, 設定 WCF-Custom 接收傳輸。 |
設定 WCF-Custom 接收器傳輸
在建立 BizTalk Server 接收位置時顯示的 WCF-Custom 傳輸屬性 對話框中,保留所有屬性的預設值,但如下表所述:
| 房產 | 價值觀 |
|---|---|
| 一般\位址 (URI) | net.tcp://localhost:8123/btsloadtest |
| 裝訂\裝訂類型 | netTcpbinding |
| Binding\NetTcpBindingElement\listenBacklog | 400 |
| Binding\NetTcpBindingElement\maxConnections | 400 |
| Binding\Security\NetTcpSecurityElement\mode | 沒有 |
| Behavior\ServiceBehavior\serviceThrottling\ServiceThrottlingElement 注意: 若要將 serviceThrottling 行為新增至行為清單,請以滑鼠右鍵單擊 ServiceBehavior,按兩下 [ 新增擴充功能],從行為延伸模塊清單中選取 serviceThrottling ,然後按兩下 [ 確定]。 | 將 ServiceThrottlingElement 屬性設定為下列值: - maxConcurrentCalls 400 - maxConcurrentInstances 400 - maxConcurrentSessions 400 |
| Behavior\ServiceBehavior\serviceDebug\ServiceDebugElement 注意: 若要將 serviceDebug 行為新增至行為清單,請以滑鼠右鍵按兩下 ServiceBehavior,按兩下 [ 新增擴充功能],從行為延伸模組清單中選取 serviceDebug ,然後單擊 [ 確定]。 | 將 ServiceDebugElement 屬性的清單保留為預設值 (空白),但下列屬性應變更為 True 的值: - httpHelpPageEnabled True - httpsHelpPageEnabled 是 - includeExceptionDetailInFaults 是 |
按兩下 [確定 ] 關閉 [WCF-Custom 傳輸屬性] 對話框,然後按下 [ 確定 ] 以關閉 [接收位置屬性] 對話方塊。
建立 BizTalk Server 傳送埠
請遵循如何在 BizTalk Server 檔中建立 傳送埠 主題中的步驟,建立 靜態單向 傳送埠。 建立傳送埠時,請將所有屬性保留為預設值,但如下表所述:
| 房產 | 價值觀 |
|---|---|
| 一般\名稱 | BTSLoadTest.Messaging.Send.WCF-Custom |
| 一般\傳送處理程式 | TxHost |
| 一般\傳送管線 | PassThruTransmit |
| 篩選器\名稱 | BTS.ReceivePortName |
| 篩選器\運算符 | == |
| 篩選器\值 | BTSLoadTest.Messaging.OneWay.ReceivePort |
| 篩選器;依分組 |
注意:如果這些屬性已設定為正確的值,則在 [傳送埠屬性] 對話框的 [篩選] 頁面底部,應會顯示 BTS.ReceivePortName == BTSLoadTest.Messaging.OneWay.ReceivePort。 由於套用此篩選,此傳送埠會透過名為 BTSLoadTest.Messaging.OneWay.ReceivePort 的接收埠訂閱 BizTalk Server 所接收的任何訊息。 |
| 追蹤 | 確定未核取所有方塊。 |
| 一般\類型 | 從下拉式清單中選取 [WCF-Custom ],然後按兩下 [ 設定 ] 按鈕,這會顯示 [WCF-Custom 傳輸屬性 ] 對話框,如下一節所述, 設定 WCF-Custom 傳送傳輸。 |
設定 WCF-Custom 發送傳輸
在建立 BizTalk Server 傳送埠時顯示的 [WCF-Custom 傳輸屬性 ] 對話框中,保留所有屬性的預設值,但如下表所述:
| 房產 | 價值觀 |
|---|---|
| 一般\位址 (URI) | net.tcp://<Computer Name>:2001/TCP1 重要:<Computer Name> 是用來裝載 IndigoService.exe的實際計算機名稱佔位符,其設計目的是要處理透過 WCF 傳送的訊息。 因為 IndigoService.exe 需要很少的資源,所以在 BizTalk Server 群組資料庫所使用的 SQL Server 計算機上執行 IndigoService.exe 通常完全可以接受。 |
| 裝訂\裝訂類型 | 自訂綁定 |
如同大部分 WCF-Custom 系結類型, customBinding Binding 類型會公開數個屬性,這應該設定為下列值:
在 系結 區段下,有一個與 組態 區段相關聯的 CustomBindingElement 屬性。 將 CustomBindingElement 屬性的 [組態] 區段中的所有值保留為預設值。
然後在 [CustomBindingElement] 底下,以滑鼠右鍵按兩下 textMessageEncoding,然後選取 [移除擴充功能] [Del]。 同樣地,以滑鼠右鍵按兩下 HTTPTransport,然後選取 [移除擴充功能] [Del]。
現在,以滑鼠右鍵按下 CustomBindingElement ,然後選取 [ 新增擴充功能] 以顯示 [ 選取綁定項延伸模組 ] 對話方塊。
選取 binaryMessageEncoding ,然後按兩下 [ 確定 ] 以新增 binaryMessageEncoding 元素延伸。 重複步驟以顯示 [ 選取綁定項延伸 模組] 對話框,然後向下捲動可用的元素延伸清單,直到您看到 tcpTransport 元素延伸,選取 [tcpTransport ],然後按兩下 [ 確定]。
在 [CustomBindingElement] 下,選取 tcpTransport 元素,然後在 [tcpTransport] 的 [組態] 區段中,將所有屬性保留為預設值,但如下表所述:
房產 價值觀 連接緩衝區大小 (connectionBufferSize) 2097152 最大緩衝區大小 (maxBufferSize) 2097152 maxPendingAccepts 400 最大待處理連線數 400 監聽積壓 400 最大緩衝集區大小 2097152 接收的最大消息大小 (maxReceivedMessageSize) 2097152 在 tcpTransport 元素下,選取 ConnectionPoolSettings 元素,並將所有屬性保留為預設值,但 maxOutboundConnectionsPerEndpoint 屬性除外,此屬性應變更為 400。
單擊 [確定] 關閉 [WCF-Custom 傳輸內容] 對話框,然後再單擊 [確定] 關閉 BTSLoadTest.Messaging.SendWCF-Custom – [傳送埠屬性] 對話框。
設定電腦接收由 BizTalk Server 傳送埠發送的訊息
如先前所述,IndigoService.exe 的設計訴求是取用透過 WCF 傳送的訊息。 其中包含下列 4 個檔案,而且它們應該位於您想要執行 IndigoService.exe的電腦上:
\IndigoService\bin\Release\IndigoService.exe
\IndigoService\bin\Release\IndigoService.exe.config
\IndigoService\bin\Release\Response.xml
\IndigoService\bin\Release\StartIndigoService.bat
首先按兩下 StartIndigoService.bat以開始 IndigoService.exe。 IndigoService.exe 會取用傳送至 IndigoService.exe.config 檔案中所指定端點的訊息:
<endpoint address=“net.tcp://localhost:2001/TCP1” binding=“netTcpBinding” bindingConfiguration=“Binding1” name=“endpoint1” contract=“IndigoService.IServiceTwoWaysVoidNonTransactional” />
這就是為什麼傳送埠位址設定為 net.tcp://Computer Name>:2001/<TCP1 的位址 (URI)
因為 IndigoService.exe 需要很少的資源,所以在 BizTalk Server 資料庫所使用的 SQL Server 計算機上執行 IndigoService.exe 通常完全可以接受。
停用 BizTalk Server 群組的追蹤和節流
若要判斷系統的絕對永續性輸送量,在開始負載測試之前,應該先停用訊息追蹤和節流。 您可以遵循下列步驟,使用 BizTalk Server 管理控制台來完成此動作:
啟動 BizTalk Server 管理控制台。 按兩下 [開始],指向 [所有程式],指向 [BizTalk Server 2010 ],然後按兩下 [ BizTalk Server 系統管理]。
在 [BizTalk Server 系統管理] 底下,選取 [BizTalk 群組],如果列出或未列出,請以滑鼠右鍵按兩下 [ BizTalk Server 系統管理],選取 [ 連接到現有群組],輸入 SQL Server 名稱旁包含 BizTalk 群組 BizTalk Server 管理資料庫的 SQL Server 名稱 :,輸入 [資料庫名稱] 旁的 BizTalk 群組管理資料庫 名稱名稱: 然後按兩下 [ 確定]。
以滑鼠右鍵按兩下 [BizTalk 群組] 節點,然後選取 [ 設定 ] 以顯示 [BizTalk 設定儀錶板]。
按兩下即可在 BizTalk 設定儀錶板的左側窗格中選取 [ 主機 ]。
按兩下 [主機 ] 旁的下拉式清單,選取效能測試期間將使用的其中一部主機。
將屬性保留為預設值,但如下表所述:
房產 價值觀 一般\將追蹤數據移至 DTA DB 如果此方塊已被核取,取消核取。 僅限通用\32 位元 若此方塊已被勾選,請取消勾選。 一般\輪詢間隔\傳訊 設定為 20000000 的值 一般\輪詢間隔\協調流程 設定為 20000000 的值 Resource-Based 限制\正在處理的訊息 設定為 10000 的值 Resource-Based 限流\內部訊息佇列大小 設定為 10000 的值 DB 中的Resource-Based 限流\訊息計數 設定為 0 的值 Resource-Based 限制\記憶體用量\處理虛擬進程 設定為 0 的值 Rate-Based 限速\發佈\限速覆寫 設定為 [不要限制] Rate-Based 限制\傳遞\限制覆蓋 設定為不限制流量 針對效能測試期間將使用的每個主機重複步驟 6 中所述的程式。
按兩下即可在 BizTalk 設定儀錶板的左側窗格中選取 [主機實例 ]。
單擊 [ 主機實例] 旁的下拉式清單:選取將用於效能測試的其中一個主機實例。
將屬性值保留為其預設設定,但將 .NET CLR 最大背景工作線程 變更為 100 的值,並將 .NET CLR 最低背景工作線程 變更為 25。
針對效能測試期間將使用的每個主機實例,重複步驟 10 中所述的程式。
即使停用追蹤和節流在生產環境中並非建議的操作,考量到這些作業的效能成本如此高昂,停用它們來找出 BizTalk Server 環境的真正最大可持續輸送量(MST)是合乎邏輯的。 這可讓測試人員清楚地看到已套用至環境的任何效能調整的影響。 當然,可以提出一個論點,即不應停用追蹤,如果您一開始就知道您的 BizTalk Server 應用程式需要追蹤,那麼您應該啟用追蹤。 也就是說, 為了進行效能測試,應盡一切努力停用節流。 節流對於防止 BizTalk Server 因為生產環境中的負載過大而「中斷」非常有用。 不過,您不希望在效能測試期間啟用節流,因為從效能的觀點來看,這是昂貴的,而且因為如果在負載測試期間節流啟動,那麼您將很難判斷 BizTalk Server 應用程式實際可以達到的效能層級。 下一個主題說明如何執行步驟負載測試,以將 BizTalk Server 環境推向超出 MST 的負荷,然後使用恆定負載測試將其縮減回實際的 MST。 如果已啟用節流,則幾乎不可能將 BizTalk 環境推送到 MST 之外,讓您可以接著探索真正的 MST 是什麼。