跨服务器调用超时的sql系统变量是什么?

时间:2013-10-22 15:54:23

标签: sql-server tsql timeout

我在下面的问题上遇到了类似的问题,我想我找到了一个解决方案,但我只需要知道sql系统变量的连接超时是什么我试过@@ LOCK_TIMEOUT但是只有在设置超时时才有效。但是,如果sql服务器连接只是超时或者存储此信息的变量,以防dba增加或减少连接的超时而不仅仅是会话,则不应该有默认超时。因为如果没有在会话级别设置超时并且它在服务器级别设置而不是@@ LOCK_TIMEOUT仍为-1。

类似的问题: Handling Timeouts inside stored procedures 我计划做的是以下几点:

@start = SYSDATETIME() exec stored_proc跨服务器调用sp @end = SYSDATETIME() IF @ end- @start = @ LOCK_TIMEOUT1(@ Lock_timeout1将是从该SP调用sp的超时时间) 开始 Raiserror('交叉服务器调用中出现超时',16,1) END

1 个答案:

答案 0 :(得分:0)

我想我发现这是我到目前为止所做的:

SET @TimeoutCheck =(SELECT CONVERT(INT,VALUE) FROM crossserver.sys.configurations WHERE      configuration_id=1520)
SET @start=GETDATE()

Exec crossserver.processthissp @ProcessID

IF @@error<>0 
BEGIN 
    Raiserror('Error in crossserver.processthissp', 16,1)
    Return 
END 
SET @end=GETDATE()
SELECT @TimeoutCheck/60,DATEDIFF(mi, @start, @end)

IF DATEDIFF(mi, @start, @end) > @TimeoutCheck/60 
BEGIN
    RaisError('Job failed due to cross server timeout.',16,1)
    Return -1
END