首页 > 解决方案 > SSIS 包在从网络读取输入流时出现致命错误

问题描述

问题

在执行将数据从数据库插入到数据库的数据繁重的 SSIS 包时EnvironmentA1EnvironmentB1我收到以下错误:

A fatal error occurred while reading the input stream from the network. The session will be terminated (input error: 10060, output error: 0)

上下文信息

EnvironmentA1- 本地数据中心的虚拟机,运行 SQL Server 2017

EnvironmentB1- Azure 中的虚拟机,运行 SQL Server 2017

该包正在由 SQL 代理每天安排从 SSIS 目录执行。偶尔它会成功,但现在通常预计每次运行都会失败,每次运行不同的步骤。

对此我真正感到困惑的是,如果我设置为在 Visual Studio 中使用完全相同的连接字符串EnvironmentA1EnvironmentB1连接管理器的相同安全上下文以交互方式运行相同的包,它每次都会成功而不会出现任何问题。Visual Studio 本身安装在EnvironmentC1.

这是 SQL 错误日志中的示例条目在EnvironmentB1失败时的样子: 在此处输入图像描述

SSIS 目录执行报告中的错误消息: 在此处输入图像描述

以上所有内容和所做的研究表明这是与网络相关的问题。发现的常见建议是禁用我为这两种环境所做的任何与 TCP 卸载相关的功能,但这没有任何区别。

EnvironmentA1

在此处输入图像描述

EnvironmentB1

在此处输入图像描述

此外,出于测试目的,我在每个环境的 NIC 配置中禁用了以下功能:

EnvironmentA1

EnvironmentB1

另请注意,还有其他 SSIS 包与相同的两种环境交互,其中一些从未产生类似的错误,但它们要么处理微量数据,要么将其推向相反的方向 ( EnvironmentB1to EnvironmentA1)

作为临时措施,我还尝试将包部署到EnvironmentA2(的开发版本EnvironmentA1)的 SSIS 目录并使用生产连接字符串安排执行,但它遇到了完全相同的问题,并且成功运行包的唯一保证方法仍然是通过视觉工作室。

如果有人至少能指出我诊断这个问题的正确方向,那将不胜感激。如果我可以为上下文添加任何其他信息,请告诉我。

标签: sqlsql-servernetworkingssis

解决方案


您的第三个 SSIS 错误表明连接被远程主机强行关闭。这表明存在防火墙或网络过滤问题。如果可能是这种情况,请咨询您的网络人员。


推荐阅读