【问题标题】:what is the sql system variable for timeout for cross server calls?跨服务器调用超时的sql系统变量是什么?
【发布时间】:2013-10-31 14:35:22
【问题描述】:

我遇到了与下面的问题类似的问题,我想我找到了解决方案,但我只需要知道连接超时的 sql 系统变量我尝试了@@LOCK_TIMEOUT 但只有在你设置超时时才有效.但是,当 sql server 连接超时或存储此信息的变量时不应该有默认超时,以防 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('跨服务器调用sp超时', 16, 1) 结束

【问题讨论】:

  • 为什么这个标签是oracle
  • 很抱歉我在处理多项任务。

标签: sql-server tsql timeout


【解决方案1】:

我想我发现这是我目前所拥有的:

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 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-05
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    相关资源
    最近更新 更多