BizTalk SOAP 接收位置性能不佳

Posted

技术标签:

【中文标题】BizTalk SOAP 接收位置性能不佳【英文标题】:BizTalk SOAP receive location poor performance 【发布时间】:2018-05-07 11:36:25 【问题描述】:

我的 BizTalk 应用程序使用托管在同一服务器上的 IIS 中的 SOAP/ASMX 接收位置 Web 服务时遇到性能不佳的问题。此服务仅调用 Oracle DB 上的一个函数(通过 Oracle 驱动程序连接)

我已经通过 Soap UI 进行了负载测试,并在 SQL Navigator 中的 PL/SQL Profiler 中对 DB 进行了一些压力测试,结果发现平均请求时间 = 700 毫秒,平均数据库查询时间 = 15 毫秒,平均编排完成时间 = 30 毫秒(通过 BT 管理控制台),所以 IIS、asmx 或 SOAP 浪费了大量时间?

我读过这个:Configuration Parameters that Affect Adapter Performance 并调整了 minFreeThreads , minFreeLocalRequestFreeThreads 但实际上什么也没发生。

但据我了解 - 那里描述了发送端口,但接收位置有问题,对吧?

另请阅读该文章:BizTalk: Performance problems using the SOAP adapter

没有这样的键:

注册表项:

HKLM\SYSTEM\CurrentControlSet\Services\BTSSvc$BizTalkServerApplication\CLR Hosting

如何实现方案二?

选项 2:

查看进程隔离——这将使用在与 BizTalk NT 服务不同的地址空间中执行的不同的 .NET 线程池实例。

请指导我

【问题讨论】:

您有实际的 .asmx 页面吗? BizTalk 不使用 .asmx 页面。接收位置是一个 ISAPI 应用程序。另外,“通过 Oracle 驱动程序连接”是什么意思?您使用的是 Oracle 数据库适配器吗? @Johns-305 是的,没有站点及其 ISAPI,不,应用程序使用 Oracle DB 客户端而不是 Oracle 适配器 抱歉,您没有在 BizTalk 中使用 Oracle 适配器? 那篇文章相当陈旧(2009 年)。更高版本的 BizTalk 在管理控制台的主机设置中有这些配置设置。 【参考方案1】:

转到您的接收主机属性并将消息轮询间隔从默认的 500 毫秒更改为 50 毫秒,这将提高性能。如果您在单独的主机上使用编排来处理服务请求和响应,请在编排主机上执行相同操作,但要减少编排轮询间隔。这样做可以提高低延迟场景的性能,但是会增加 SQL 消息框的开销。根据您的音量和需要进行调整。

也尝试升级到 WCF 服务

【讨论】:

如果您要减少主机上的轮询,我建议创建新的 LowLatency 主机和主机实例,并且只将需要它的那些放在那里。这将减少对 SQL 消息框的影响。 减少对 ServerIsolatedHost 的轮询?我这样做了,确实时间下降到了 450 毫秒,但我担心它会对其他接收位置产生不良影响 我还意识到,为了应用更改,我需要在 IIS 中回收 AppPool

以上是关于BizTalk SOAP 接收位置性能不佳的主要内容,如果未能解决你的问题,请参考以下文章

BizTalk管理实践

有没有办法通过代码自动打开或关闭 BizTalk 接收位置?

BizTalk 2010 WCF-SQL 适配器 XML 轮询问题

BizTalk 2016 sFTP WinSCP - 无法接收更多消息

Microsoft.BizTalk.Component.MIMEException

递归 CTE 性能不佳