如果网络关闭,如何控制SQLDriverConnect超时?

时间:2013-10-21 09:35:29

标签: sql sql-server

我们使用C ++ SQLDriverConnect连接到我们的后端MS SQL Server。通过这些属性,可以为登录超时(SQL_ATTR_LOGIN_TIMEOUT)设置一个参数,该参数定义了SQLDriverConnect(这是一种登录类型)所需的时间。

现在,如果我停止服务器上的SQL服务,这个超时会得到尊重,并且在调用函数后的X秒之后我会得到我的连接故障,这当然是正确的。 但是,如果我不停止服务,但是,从服务器禁用网络适配器,我们拔出服务器的网络电缆,SQLDriverConnect不尊重此超时,并且仅在稍后返回很多。

例如,将超时设置为5秒时,如果SQL服务器关闭,则SQLDriverConnect仅在53秒后返回。

我知道这可以通过自己的异步连接来解决,我可以在X秒后总是返回,但是,如果可能的话,我宁愿不这样做,只是使用提供的函数和选项来控制连接

我认为延迟是由尝试查找主机的网络堆栈引起的,但我的想法是我们使用更高级别的API并暂停,以确保我们不必担心这些事情......

关于如何“修复”的任何想法?

事先提前

维姆

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用SQL_ATTR_CONNECT_TIMEOUT?