我有一些在SQL Server 2000上运行的JOB,它们正在调用存储过程或对远程SQL Server(不同版本)的查询。
JOB称为DTS,是进行远程连接并执行存储过程或从远程服务器获取查询结果的DTS。
多年来一直没有出现错误。我不知道为什么在过去的一个月中,我在此类工作中出现随机错误...我读过其他文章,似乎与安全问题有关,但我经常重复作业正在运行,只有部分运行失败并显示错误。
Executed as user: SERVER\user. DTSRun: Loading... DTSRun: Executing...
DTSRun OnStart: DTSStep_DTSDynamicPropertiesTask_2 DTSRun OnError:
DTSStep_DTSDynamicPropertiesTask_2, Error = -2147467259 (80004005)
Error string: Login timeout expired Error source: Microsoft OLE DB
Provider for SQL Server Help file: Help context: 0
Error Detail Records: Error: -2147467259 (80004005); Provider Error: 0 (0)
Error string: Login timeout expired Error source: Microsoft OLE DB Provider for SQL Server
Help file: Help context: 0 DTSRun OnFinish:
DTSStep_DTSDynamicPropertiesTask_2 DTSRun: Package execution complete.
Process Exit Code 1. The step failed.
我真的不知道要检查什么。重新启动服务器后,问题仍然存在。大家的帮助将不胜感激。
编辑2019-02-14 16:15 -------------------------------------- -------------------------------------------------- ---
我发现的解决方案之一是通过执行以下代码将“远程登录超时”属性从默认的20秒更改为30秒,或更改为0(零表示无超时):
sp_configure 'remote login timeout', 30 --Or 0 seconds for infinite
go
reconfigure with override
go
我尝试过将该解决方案更改为30秒,但结果相同。当然,出于明显的原因,我没有将其设置为0,因为超时是存在的。并且尝试了300秒(需要5分钟才能登录!),并且仍然相同。
编辑2019-02-25 11:25 -------------------------------------- -------------------------------------------------- ---
非常类似于我的问题,仍然没有解决... https://www.sqlservercentral.com/Forums/Topic1727739-391-1.aspx
答案 0 :(得分:0)
目前我有一个临时解决方案,它是增加Connection对象上的 Connect Timeout 。
它为空白(可能使用其默认值)。
因为我将此属性(“连接对象”>“高级...”>“连接超时”)更改为 300 ,所以我在这些DTS上没有遇到问题。我没有更改就保留了2个DTS,以确保我仍然遇到问题,而这是唯一继续出现问题的解决方案。更改后的代码现在可以正常工作。