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

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

为负载测试配置 BizTalk Server 环境

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

<-- 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 组。 为默认进程内主机创建的Window组名为 <计算机名称>\BizTalk 应用程序用户(适用于单服务器 BizTalk Server 安装),或 <域名>\BizTalk 应用程序用户(适用于需使用域组的多服务器 BizTalk Server 安装)。 注意:<计算机名称和><域名>是创建组时使用的实际计算机名或域名的占位符。

如果为此主机创建了一个新组,则该组必须具有主题 主机组中所述的权限。

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

资产 价值
名称 RxHost
类型 In-Process
允许主机跟踪 确保取消选中此框。
身份验证受信任 确保取消选中此框。
32位专用 确保取消选中此框。
将此设置为组中的默认主机 确保取消选中此框。
Windows 组 用于控制对此主机和关联主机实例的访问的 Windows 组。 为默认进程内主机建立的 Windows 组名为 <计算机名称>\BizTalk 应用程序用户(适用于单服务器 BizTalk Server 安装)或 <域名>\BizTalk 应用程序用户(适用于需要使用域组的多服务器 BizTalk Server 安装)。 注意:<计算机名称和><域名>是创建组时使用的实际计算机名或域名的占位符。

如果为此主机创建了一个新组,则该组必须具有主题 主机组中所述的权限。

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

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

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

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

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

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

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

创建 BizTalk Server 接收端口

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

资产 价值
通用\名称 BTS负载测试消息传递.单向.接收端口
常规\端口类型 One-Way
常规\身份验证 无身份验证
常规\为失败消息激活路由 确保取消选中此框。
常规\说明 保留空白
入站映射 没有
跟踪 确保所有框都未被选中。
接收位置 单击“ 新建”,将显示“ 接收位置属性 ”对话框,该对话框应按以下部分中所述进行配置: “创建 BizTalk Server 接收位置”。

创建 BizTalk Server 接收点

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

资产 价值
姓名: BTS负载测试.消息.单向.WCF-客户.接收位置
接收处理程序: RxHost
接收管道: 数据传递接收
描述: 将此保留为空
类型: 从下拉列表中选择 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 True
- 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 类型公开多个属性,这些属性应设置为以下值:

  1. 绑定节下,有一个具有关联配置节的 CustomBindingElement 属性。 将 CustomBindingElement 属性的 Configuration 节中的所有值保留为其默认值。

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

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

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

  5. CustomBindingElement 下,选择 tcpTransport 元素,在 tcpTransport 的配置部分中,将所有属性保留默认值,如下表所述:

    资产 价值
    连接缓冲区大小 2097152
    最大缓冲区大小 2097152
    maxPendingAccepts (最大待接受数) 400
    最大待处理连接数 400
    listenBacklog 400
    最大缓冲池大小 (maxBufferPoolSize) 2097152
    maxReceivedMessageSize 2097152
  6. tcpTransport 元素下,选择 ConnectionPoolSettings 元素并将所有属性保留默认值,但 maxOutboundConnectionsPerEndpoint 属性除外,该属性应更改为值 400。

  7. 单击“ 确定 ”以关闭“WCF-Custom 传输属性”对话框,然后单击“ 确定 ”以关闭 BTSLoadTest.Messaging.Send。WCF-Custom – “发送端口属性”对话框。

将计算机配置为接收 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” />

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

    由于 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 管理,选择“ 连接到现有组”,输入 SQL Server 名称旁包含 BizTalk 组的 BizTalk Server 管理数据库的名称 ,输入数据库名称旁边的 BizTalk 组管理数据库 名称: 然后单击“ 确定”。

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

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

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

  6. 将属性保留为默认值,但如下表所述:

    资产 价值
    常规\将跟踪数据移动到 DTA DB 如果此框当前已选中,请取消选中。
    常规\32 位仅限 如果选中此框,请取消选中。
    常规\轮询间隔\消息传送 设置为值 20000000
    常规\轮询间隔\编排 设置为值 20000000
    Resource-Based 限制\进程内消息 设置为 10000 的值
    Resource-Based 限制\内部消息队列大小 设置为 10000 的值
    DB 中的Resource-Based 限制\消息计数 设置为值 0
    Resource-Based 节流\内存使用情况\虚拟内存进程 设置为值 0
    Rate-Based 限制\发布\限制覆盖 设置为“请勿节流”
    Rate-Based 节流\传递\节流覆盖 设置为“请勿节流”
  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。