首页 > 解决方案 > 什么可能导致此 SQL 作业随机执行失败?

问题描述

我正在使用SQL Server 2014并且我有一个SQLJob ( SSIS Package) 设置为每天在特定时间运行。在过去的 3 周中,该SQL作业在随机的日子里大约有 4 次未能执行。我很难弄清楚这些故障的可能原因以及如何解决它们。对于这些失败中的每一个,我都会从SQL日志文件中收到相同的错误消息。

错误信息如下所示:

Source: Execute SQL Task Description: OLE DB provider "SQLNCLI11" for   linked server "(null)" 
returned message "Protocol error in TDS stream".  
End   Error  Error:  2018-05-26 05:23:23.68
Code: 0x00000000     Source: Execute SQL Task 
Description: OLE DB provider "SQLNCLI11" for linked server "(null)" 
returned message "Communication link failure".  
End Error  Error: 2018-05-26 05:23:23.68
Code: 0x00000000 Source: Execute SQL Task      
Description: Session Provider: Physical connection is not usable [xFFFFFFFF].   
End Error  Error: 2018-05-26 05:23:23.68 Code: 0x00000000       Source: Execute SQL Task       
Description: OLE DB provider "SQLNCLI11" for linked server "(null)" 
returned message "Communication link failure".  
End Error  Error: 2018-05-26 05:23:23.72 
Code: 0xC002F210     Source: Execute SQL Task Execute SQL Task 
Description: Executing the query "  SELECT ResStayNonRoomBundleID<c/>  ReservationStayI..." 
failed with the following error: 
"TCP Provider: An existing connection was forcibly closed by the remote host.". 
Possible failure reasons: Problems with the query<c/> "ResultSet" property not set correctly 
<c/> parameters not set correctly<c/> or connection not established correctly. 
End Error  DTExec: The package execution returned DTSER_FAILURE (1).
Started:  5:22:57 AM  Finished: 5:23:23 AM  Elapsed:  26.343 seconds.  
The package execution failed.  The step failed.,00:00:26,0,0,,,,0

如果有人可以提供有关此错误的潜在原因的一些帮助和指示,将不胜感激。

SQL由于工作在某些日子里成功,我已经排除了在内部使用的查询可能存在问题的选项SSIS Package

附加说明:SQL 作业由 12 个步骤组成,并且每次都不会在特定步骤发生故障。

标签: sqlsql-serverssissql-server-2014jobs

解决方案


我同意@gordon-linoff。我建议创建一个控制台应用程序,该应用程序对封装有一些 try catch 块的数据库进行计数。如果可以进行计数,请从控制台应用程序执行 SSIS 包。

这样做将允许您预先检查是否可以与数据库建立连接。如果没有,您可以捕获其他错误并重试。这是一篇关于从控制台应用程序执行 SSIS 包的帖子。

从 c# 控制台应用程序为每个循环调用 SSIS 包


推荐阅读