步骤 4:为负载测试配置 BizTalk Server 环境

本主题提供有关创建BizTalk Server接收位置、接收端口和发送端口的信息,以运行主题中所述的示例代码步骤 1:创建单元测试以将文档提交到BizTalk Server步骤 3:创建负载测试以同时执行多个单元测试

为负载测试配置BizTalk Server环境

如主题 步骤 3:创建负载测试以同时执行多个单元测试中所述,负载测试 BTS_Messaging_Step 配置为执行 单元测试 BTSMessagingBTSMessaging2。 反过来,这些单元测试会加载消息 C:\Projects\LoadTest\BTSLoad\TestMessages\TestXmlDocument.xml 的副本,并将其发送到 终结点 BTSMessagingEPBTSMessagingEP2 ,如项目应用程序配置 (app.config) 文件的以下部分所定义:

<-- 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 Message Box 数据库位于远程SQL Server计算机上。

创建BizTalk Server发送和接收主机

按照BizTalk Server文档主题如何创建新主机中的步骤,为发送端口和发送适配器处理程序创建BizTalk Server“发送”主机。 使用以下属性配置主机:

属性
名称 TxHost
类型 In-Process
允许主机跟踪 确保此框未选中。
受信任验证 确保此框未选中。
(仅适用于 32 位版本) 确保此框未选中。
将其用作组中的默认主机 确保此框未选中。
Windows 组 用于控制对此主机和关联主机实例的访问的 Windows 组。 为默认进程内主机创建的窗口组命名<为计算机名称>\BizTalk 应用程序用户 (BizTalk Server安装) 或<域名>\BizTalk 应用程序用户 (多服务器BizTalk Server安装,这需要使用域组) 。 注意:<计算机名称和><域名>是创建组时使用的实际计算机名称或域名的占位符。

如果为此主机创建新组,则它必须具有主题 “主机组”中所述的权限。

重复创建“发送”主机时遵循的步骤,以创建“接收”主机。 使用以下属性值配置“Receive”主机:

属性
名称 RxHost
类型 In-Process
允许主机跟踪 确保此框未选中。
受信任验证 确保此框未选中。
(仅适用于 32 位版本) 确保此框未选中。
将其用作组中的默认主机 确保此框未选中。
Windows 组 用于控制对此主机和关联主机实例的访问的 Windows 组。 为默认进程内主机创建的窗口组命名<为计算机名称>\BizTalk 应用程序用户 (BizTalk Server安装) 或<域名>\BizTalk 应用程序用户 (多服务器BizTalk Server安装,这需要使用域组) 。 注意:<计算机名称和><域名>是创建组时使用的实际计算机名称或域名的占位符。

如果为此主机创建新组,则它必须具有主题 “主机组”中所述的权限。

创建BizTalk Server发送和接收主机的实例

按照BizTalk Server文档主题如何添加主机实例中的步骤创建和启动BizTalk Server“发送”主机的实例。 将“Send”主机的实例配置为在BizTalk Server组中的每个BizTalk Server上运行,并使用以下属性值配置每个主机实例:

属性
主机名 从“主机名”旁边的下拉列表中选择“TxHost”。
Server 从“服务器”旁边的下拉列表中选择将运行此主机实例的BizTalk Server。
登录 1. 单击 “配置 ”按钮以显示“ 登录凭据 ”对话框。
2. 在“ 登录凭据 ”对话框中,为指定属性输入以下值:
属性
登录:作为与此BizTalk Server主机关联的 Windows 组成员的用户帐户的名称。
密码“登录” 文本框中指定的用户帐户的密码。
3. 单击“ 确定” 关闭 “登录凭据 ”对话框。
禁止主机实例启动。 确保此框未选中。

创建主机实例后,右键单击主机实例,然后从上下文菜单中选择“ 开始 ”。

重复创建“发送”主机实例时遵循的步骤,以创建“接收”主机实例。 将“Receive”主机的实例配置为在BizTalk Server组中的每个BizTalk Server上运行,并使用以下属性值配置每个主机实例:

属性
主机名 从“主机名”旁边的下拉列表中选择“RxHost”。
服务器 从“服务器”旁边的下拉列表中选择将运行此主机实例的BizTalk Server。
登录 1. 单击 “配置 ”按钮以显示“ 登录凭据 ”对话框。
2. 在“ 登录凭据 ”对话框中,为指定属性输入以下值:
属性
登录:作为与此BizTalk Server主机关联的 Windows 组成员的用户帐户的名称。
密码“登录” 文本框中指定的用户帐户的密码。
3. 单击“ 确定” 关闭“登录凭据”对话框。
禁止主机实例启动 确保此框未选中。

创建主机实例后,右键单击主机实例,然后从上下文菜单中选择“ 开始 ”。

创建BizTalk Server接收端口

按照BizTalk Server文档中主题如何创建接收端口中的步骤创建 One-Way 接收端口。 创建接收端口时,将所有属性保留为默认值,下表中另有说明除外:

属性
General\Name BTSLoadTestMessaging.OneWay.ReceivePort
常规\端口类型 单向
常规\身份验证 无身份验证
常规\为失败的消息启用路由 确保此框未选中。
General\Description 留空
入站映射
跟踪 确保所有框均未选中。
接收位置 单击“新建”,此时将显示“接收位置属性”对话框,应按以下部分“创建BizTalk Server接收位置”中所述进行配置。

创建BizTalk Server接收位置

在创建接收端口时显示的“接收位置属性”对话框中,应用指定的属性值BizTalk Server接收端口:

属性
姓名: BTSLoadTest.Messaging.OneWay.WCF-Customer.ReceiveLocation
接收处理者: RxHost
接收管道: PassThruReceive
说明: 将此留空
键入: 从下拉列表中选择 “WCF-Custom ”,然后单击“ 配置 ”按钮,此时将显示“ WCF-Custom Transport Properties ”对话框,该对话框应按以下部分 配置 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文档中主题如何创建发送端口中的步骤创建静态单向发送端口。 创建 Send 端口时,将所有属性保留为默认值,下表中另有说明除外:

属性
General\Name BTSLoadTest.Messaging.Send.WCF-Custom
General\Send 处理程序 TxHost
General\Send 管道 PassThruTransmit
Filters\Name BTS.ReceivePortName
Filters\Operator ==
Filters\Value BTSLoadTest.Messaging.OneWay.ReceivePort
Filters\Group by 注意:如果这些属性配置了正确的值,则筛选器应显示为BTS.ReceivePortName == BTSLoadTest.Messaging.OneWay.ReceivePort“发送端口属性”对话框的“筛选器”页底部。 由于应用此筛选器,此发送端口将订阅BizTalk Server通过名为 BTSLoadTest.Messaging.OneWay.ReceivePort 的接收端口接收的任何消息。
跟踪 确保所有框均未选中。
General\Type 从下拉列表中选择 “WCF-Custom ”,然后单击“ 配置 ”按钮,此时将显示“ WCF-Custom Transport 属性 ”对话框,该对话框应按照以下部分配置 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 绑定类型会公开多个属性,这些属性应设置为以下值:

  1. “绑定 ”部分下,有一个 CustomBindingElement 属性,其中包含关联的 “配置” 部分。 将 CustomBindingElement 属性的“配置”部分中的所有值保留其默认值。

  2. 然后在 “CustomBindingElement”下 右键单击“ textMessageEncoding ”,然后选择“ 删除扩展 (Del) ”。 同样,右键单击“ httpTransport ”,然后选择“ 删除扩展 (Del)

  3. 现在右键单击“ CustomBindingElement ”,然后选择“ 添加扩展 Ins ”以显示 “选择绑定元素扩展 ”对话框。

  4. 选择 binaryMessageEncoding ,然后单击 “确定” 添加 binaryMessageEncoding 元素扩展。 重复这些步骤以显示“ 选择绑定元素扩展 ”对话框,向下滚动可用元素扩展的列表,直到看到 tcpTransport 元素扩展,选择 tcpTransport 并单击“ 确定”。

  5. CustomBindingElement 下选择 tcpTransport 元素,并在 tcpTransport 的“配置”部分中,将所有属性保留为默认值,下表中未说明:

    属性
    connectionBufferSize 2097152
    maxBufferSize 2097152
    maxPendingAccepts 400
    maxPendingConnections 400
    listenBacklog 400
    maxBufferPoolSize 2097152
    maxReceivedMessageSize 2097152
  6. tcpTransport 元素下,选择 ConnectionPoolSettings 元素,并将除 maxOutboundConnectionsPerEndpoint 属性之外的所有属性保留为默认值,该属性应更改为值 400。

  7. 单击“ 确定 ”关闭“WCF-Custom 传输属性”对话框,然后再次单击“ 确定 ”以关闭“BTSLoadTest.Messaging.Send.WCF-Custom - Send Port Properties”对话框。

配置计算机以使用BizTalk Server发送端口发送的消息

如前所述,IndigoService.exe 旨在使用通过 WCF 发送的消息。 它包含以下 4 个文件,它们应位于要运行 IndigoService.exe 的计算机上:

  1. \IndigoService\bin\Release\IndigoService.exe

  2. \IndigoService\bin\Release\IndigoService.exe.config

  3. \IndigoService\bin\Release\Response.xml

  4. \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” />

    这就是使用地址 (URI) net.tcp://<Computer Name>:2001/TCP1 配置发送端口地址的原因

    由于 IndigoService.exe 所需的资源很少,因此在用于BizTalk Server数据库的SQL Server计算机上运行 IndigoService.exe 通常是完全可以接受的。

禁用BizTalk Server组的跟踪和限制

为了确定系统的绝对最大可持续吞吐量,应在开始负载测试之前禁用消息跟踪和限制。 可以通过以下步骤使用 BizTalk Server 管理控制台完成此操作:

  1. 启动 BizTalk Server 管理控制台。 单击“开始”,指向“所有程序”,指向“BizTalk Server 2010”,然后单击“BizTalk Server管理”。

  2. “BizTalk Server管理”下,选择 BizTalk 组(如果已列出或未列出),右键单击“BizTalk Server管理”,选择“连接到现有组”,输入位于“BizTalk 组”BizTalk Server管理数据库旁边的SQL Server名称SQL Server name:,在“数据库名称”旁输入 BizTalk 组的管理数据库名称:,然后单击“确定”。

  3. 右键单击 BizTalk 组节点,然后选择 “设置” 以显示 BizTalk 设置仪表板

  4. 单击以在 BizTalk 设置仪表板的左侧窗格中选择 “主机 ”。

  5. 单击“ 主机 ”旁边的下拉列表,选择将在性能测试期间使用的主机之一。

  6. 将属性保留为默认值,下表中未说明:

    属性
    常规\将跟踪数据移动到 DTA DB 如果选中此框,请取消选中。
    仅限常规\32 位 如果选中此框,请取消选中。
    常规\轮询间隔\消息传送 设置为值 20000000
    常规\轮询间隔\业务流程 设置为值 20000000
    基于资源的限制\进程内消息 设置为值 10000
    基于资源的限制\内部消息队列大小 设置为值 10000
    DB 中基于资源的限制\消息计数 设置为值 0
    基于资源的限制\内存使用情况\进程虚拟 设置为值 0
    基于速率的限制\Publishing\Throttling 替代 设置为“不限制”
    基于速率的限制\传递\限制替代 设置为“不限制”
  7. 对将在性能测试过程中使用的每个主机重复步骤 6 中概述的过程。

  8. 单击以在 BizTalk 设置仪表板的左侧窗格中选择 “主机实例 ”。

  9. 单击“ 主机实例: ”旁边的下拉列表,选择将用于性能测试的主机实例之一。

  10. 将属性值保留为默认设置,但将 .NET CLR 最大工作线程 数更改为 值 100 ,并将 .NET CLR 最小工作线程 更改为 值 25

  11. 对将在性能测试过程中使用的每个主机实例重复步骤 10 中概述的过程。

    尽管禁用跟踪和限制并不代表在生产方案中应执行的操作,但由于从性能角度来看,禁用这些操作非常昂贵,因此有必要找出BizTalk Server环境的真正最大可持续吞吐量 (MST) 。 这使测试人员能够清楚地看到已应用于环境的任何性能调整的影响。 当然,可以提出不应禁用跟踪,如果从一开始就知道BizTalk Server应用程序将需要跟踪,则应启用跟踪。 话又说, 为了进行性能测试,应尽一切努力禁用限制。 限制对于防止BizTalk Server由于生产环境中的负载过大而“翻倒”非常有用。 但是,你不希望在性能测试期间启用限制,因为从性能的角度来看,限制成本很高,并且如果在负载测试期间启用限制,则很难确定BizTalk Server应用程序实际可以实现的性能级别。 接下来的主题介绍如何执行步骤负载测试,以将BizTalk Server环境推送到 MST 之外,然后通过持续负载测试缩减到实际的 MST。 如果启用了限制,则几乎不可能将 BizTalk 环境推送到 MST 之外,这样就可以发现真正的 MST 是什么。