如果列大于39kb,则在AWS上重置MS SQL Server连接

我们迁移了一个能够进行商业智能的应用程序,因此它可以pipe理大量的数据。 这个应用程序完全适用于我们自己的环境,但在AWS运行时,我们收到了很多“连接重置”问题。

我们已经确定,一个查询从具有XML内容列的表中检索数据。 该列是VARBINARY(MAX),内容大小差异很大。 如果我们不返回该栏,问题就会消失。 多调查一下,只有当这个列的内容接近或高于40kb时,才会有连接重置。

我们正在运行SQL Server 2012 Web Edition,并通过JDBC访问它。 如果我们通过SQL Server Management Studio连接,问题依然存在,所以它不是JDBC或我们的应用程序问题。

这个问题与另外一个问题非常相似,但是在我们的情况下,只有当列内容接近或高于40kb时,才能确定它是这样做的。

MS指定VARBINARY(最大)2GB的限制 ,所以它应该工作。

AWS有限制吗? 在我们的环境中,我们使用SQL Server 2012 Standard; 在AWS中是Web版,但是没有一个来源说明列的大小是有限制的。

更新:我们使用SQL Server Management Studio(以前是远程的)在同一台机器上运行查询,查询确实返回OK,即使有更大的结果! 所以问题是在AWS中运行。 进行访问的机器也在AWS中,但是是另一个机器。

更新2:简单的模拟查询:

SELECT CONVERT(VARBINARY(MAX),REPLICATE(CONVERT(VARCHAR(MAX),'A'), 500000))

有时候,较低的值为5000会导致问题,但会产生干扰。 通过通知500000你总是失去联系。 没有附加到SQL Server日志。

尝试调整您的窗口框的MTU:ping -f -l [试用MTU号码] [其他服务器IP]

这篇文章解释了如何使用这个技巧: 链接

希望这个帮助!