我有一些在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
目前我有一个临时解决方案,它是增加Connection对象的连接超时。
它是空白的(可能使用其默认值)。
由于我将此属性(连接对象>高级...>连接超时)更改为300,因此我没有在这些DTS上遇到问题。我留下了2个DTS没有改变,以确保我继续遇到问题,这些是唯一继续遇到问题的人。改变后的工作正常。