首页 > 解决方案 > BizTalk 2013R2 & SQL SERVER - 连接泄漏导致的超时错误

问题描述

我们最近在 BizTalk 2013R2 上收到了数百个错误(运行 CU 8);

超时已过。在从池中获取连接之前超时时间已过。这可能是因为所有池连接都在使用中并且达到了最大池大小。

我怀疑这些是由连接泄漏引起的,但我不确定如何确定确切的来源。

我试过查询有SP_WHO2多少/哪些连接是打开的,并且可以看到很多到我们的 Biz 服务器的睡眠连接,但同样不能完全隔离它们。我可以看到问题发生在哪个发送端口,我可以看到通过 WCF-SQL 调用的存储过程被上述错误拒绝,但我现在不知道下一步该去哪里。

据我所知,没有使用非正统的连接或适配器来调用与 Biz 服务器的连接。我唯一能想到的可能是 Typed Polling 调用背后的连接没有被关闭。

一旦尝试连接,BizTalk 是否应该关闭任何 WCF-SQL/WCF-Custom 适配器连接?

关于下一步去哪里隔离源有什么建议吗?

标签: sql-serverbiztalkbiztalk-2013r2

解决方案


据说此问题已在 BizTalk Server 2013 R2 的 CU 7 中修复,请参阅修复:如果 AmbientTransaction 为 True 或 ReceiveTimeout 不超过轮询时间加上从 SQL Server 查询数据的时间,WCF-SQL 适配器会间歇性失败

该文章中暗示的解决方法在 CU 7 之前曾在某种程度上起作用,例如将 ReceiveTimeout 设置为一个非常大的数字。所以试试吧。


推荐阅读