步驟 4:設定負載測試用的 BizTalk Server 環境
本主題提供建立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 |
類型 | 內含式 |
允許主機追蹤 | 請確定未核取此方塊。 |
信任的驗證 | 請確定未核取此方塊。 |
僅限 32 位元 | 請確定未核取此方塊。 |
將此設為群組中的預設主機 | 請確定未核取此方塊。 |
Windows 群組 | 用來控制此主機和相關聯主機實例存取權的 Windows 群組。 針對預設進程內主機建立的視窗群組名為< 電腦名稱稱 >\BizTalk 應用程式使用者 (單一伺服器BizTalk Server安裝) 或< 功能變數名稱 >\BizTalk 應用程式使用者 (,以用於多部伺服器BizTalk Server安裝,這需要使用網域群組) 。 注意:< 電腦名稱稱和 >< 功能變數名稱 >是建立群組時所使用的實際電腦名稱稱或功能變數名稱的預留位置。 如果為此主機建立新的群組,則必須具有 主機群組主題中所述的許可權。 |
重複建立「傳送」主機以建立「接收」主機時所遵循的步驟。 使用下列屬性值設定 「Receive」 主機:
屬性 | 值 |
---|---|
名稱 | RxHost |
類型 | 內含式 |
允許主機追蹤 | 請確定未核取此方塊。 |
信任的驗證 | 請確定未核取此方塊。 |
僅限 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 |
一般\埠類型 | 單向 |
一般\驗證 | 不需要驗證 |
一般\啟用失敗訊息的路由 | 請確定未核取此方塊。 |
一般\描述 | 保留空白 |
輸入對應 | 無 |
追蹤 | 確定所有方塊都未核取。 |
接收位置 | 按一下[新增],這會顯示 [接收位置屬性] 對話方塊,如下一節建立BizTalk Server接收位置中所述。 |
建立BizTalk Server接收位置
在建立BizTalk Server接收埠時顯示的 [接收位置屬性] 對話方塊中,套用指定的屬性值:
屬性 | 值 |
---|---|
名稱: | BTSLoadTest.Messaging.OneWay.WCF-Customer.ReceiveLocation |
接收處理常式: | RxHost |
接收管線︰ | PassThruReceive |
說明: | 將此保留空白 |
輸入: | 從下拉式清單中選取 [WCF-Custom ],然後按一下 [ 設定 ] 按鈕,這會顯示 [ WCF-自訂傳輸屬性 ] 對話方塊,其應該如下一節所述,設定 WCF-Custom 接收傳輸。 |
設定 WCF-Custom 接收傳輸
在建立BizTalk Server接收位置時顯示的[WCF-自訂傳輸屬性] 對話方塊中,保留所有屬性的預設值,如下表所述:
屬性 | 值 |
---|---|
一般\位址 (URI) | net.tcp://localhost:8123/btsloadtest |
Binding\Binding Type | 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 真 - HTTPsHelpPageEnabled 真 - includeExceptionDetailInFaults 真 |
按一下 [確定 ] 關閉 [WCF-Custom 傳輸屬性] 對話方塊,然後按一下 [ 確定 ] 以關閉 [接收位置屬性] 對話方塊。
建立BizTalk Server傳送埠
請遵循BizTalk Server檔中如何建立傳送埠主題中的步驟,建立靜態單向傳送埠。 建立傳送埠時,請將所有屬性保留為預設值,如下表所述:
屬性 | 值 |
---|---|
一般\名稱 | BTSLoadTest.Messaging.Send.WCF-Custom |
一般\傳送處理常式 | TxHost |
一般\傳送管線 | PassThruTransmit |
Filters\Name | BTS.ReceivePortName |
Filters\Operator | == |
Filters\Value | BTSLoadTest.Messaging.OneWay.ReceivePort |
Filters\Group by | 注意 : 如果這些屬性已設定正確的值,篩選應該會顯示為 BTS.ReceivePortName == BTSLoadTest.Messaging.OneWay.ReceivePort [傳送埠屬性] 對話方塊之 [篩選] 頁面底部的 [篩選] 頁面。 由於套用此篩選,此傳送埠會透過名為 BTSLoadTest.Messaging.OneWay.ReceivePort 的接收埠訂閱BizTalk Server所接收的任何訊息。 |
追蹤 | 確定所有方塊都未核取。 |
一般\類型 | 從下拉式清單中選取 [WCF-Custom ],然後按一下 [ 設定 ] 按鈕,這會顯示 [ WCF-自訂傳輸屬性 ] 對話方塊,其應該如下一節所述,設定 WCF-Custom 傳送傳輸。 |
設定傳送傳輸 WCF-Custom
在建立BizTalk Server傳送埠時顯示的[WCF-自訂傳輸屬性] 對話方塊中,保留所有屬性的預設值,如下表所述:
屬性 | 值 |
---|---|
一般\位址 (URI) | net.tcp://< Computer Name:2001/TCP1 Important:Computer Name >> 是用來裝載 IndigoService.exe 之實際電腦名稱稱的預留位置,其設計目的是取用透過 WCF 傳送的 <訊息。 因為 IndigoService.exe 需要非常少的資源,所以在用於BizTalk Server群組資料庫的SQL Server電腦上執行 IndigoService.exe 通常是可接受的。 |
Binding\Binding Type | customBinding |
如同大部分 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 maxPendingConnections 400 listenBacklog 400 maxBufferPoolSize 2097152 maxReceivedMessageSize 2097152 在 tcpTransport 元素下,選取 ConnectionPoolSettings 元素,並將所有屬性保留為預設值,但 maxOutboundConnectionsPerEndpoint 屬性除外,其應變更為 400 的值。
按一下 [確定 ] 以關閉 [WCF-Custom 傳輸屬性] 對話方塊,然後按一下 [ 確定 ] 再次關閉 BTSLoadTest.Messaging.Send.WCF-Custom – Send Port Properties 對話方塊。
設定電腦以取用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管理資料庫旁的BizTalk Server管理資料庫SQL Server name:,輸入 [資料庫名稱] 旁的 BizTalk 群組管理資料庫名稱:,然後按一下 [確定]。
以滑鼠右鍵按一下 [BizTalk 群組] 節點,然後選取 [ 設定 ] 以顯示 BizTalk 設定儀表板。
按一下即可在 BizTalk 設定儀表板的左側窗格中選取 [ 主機 ]。
按一下 [主機 ] 旁的下拉式清單,選取效能測試期間將使用的其中一個主機。
將屬性保留為預設值,但下表中另有說明:
屬性 值 一般\將追蹤資料移至 DTA DB 核取此方塊時取消核取。 僅限一般\32 位 核取此方塊時取消核取。 一般\輪詢間隔\傳訊 設定為 20000000 的值 一般\輪詢間隔\協調流程 設定為 20000000 的值 資源型節流\進程內訊息 設定為 10000 的值 資源型節流\內部訊息佇列大小 設定為 10000 的值 資料庫的資源型節流\訊息計數 設定為 0 的值 資源型節流\記憶體使用量\進程虛擬 設定為 0 的值 速率型節流\發佈\節流覆寫 設定為 [不要節流] 速率型節流\傳遞\節流覆寫 設定為 [不要節流] 針對將在效能測試期間使用的每個主機,重複步驟 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 是什麼。