链接的服务器错误的原因不明
-
22-07-2019 - |
题
我们有一个旧的Windows 2000服务器上运行SQL Server 2000标准版,SP3。这有一个链接的服务器设置通过ODBC连接来连接到Informix数据库。对于大多数的一年,运行OPENQUERY对链接服务器没有任何问题的正常工作。 然而,每隔几个月此链接的服务器失败,并且直到SQL服务器重新启动后不会再工作。 我们在企业管理器中看到的错误是这样的:
---------------------------
SQL Server Enterprise Manager
---------------------------
Error 7399: OLE DB provider 'UNKNOWN' reported an error.
Memory allocation failure.]
Memory allocation failure.]
OLE DB error trace [OLE/DB Provider 'UNKNOWN' IDBSchemaRowset::GetRowset returned 0x80004005: ].
---------------------------
OK
---------------------------
如果我尝试对运行在查询分析器中的链接服务器的任何SQL查询,报告的错误是这样的:
[OLE/DB provider returned message: Unspecified error]
OLE DB error trace [OLE/DB Provider 'MSDASQL'
IDBCreateCommand::CreateCommand returned 0x80004005: ].
Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' reported an error.
如果我申请中引用的跟踪标志这里我得到一点点更详细地:
OLE DB error trace [Non-interface error: OLE DB provider MSDASQL
returned an incorrect value for DBPROP_CONCATNULLBEHAVIOR which should
be either DBPROPVAL_CB_NULL or DBPROPVAL_CB_NON_NULL].
[OLE/DB provider returned message: Unspecified error]
OLE DB error trace [OLE/DB Provider 'MSDASQL'
IDBCreateCommand::CreateCommand returned 0x80004005: ].
Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' reported an error.
这是什么会导致此任何想法?我们不知道任何服务器故障或变化来设置,并重新启动似乎总是解决这个问题。在Informix DB似乎是版本的Informix动态服务器2000 9.21.UC2,升级或修补它不能作为一个选项。
解决方案
注意IDS 9.21是长出来的支持 - 事实上,无论是9.30和9.40(IDS的后继版本)也出来支持。你是一个升级逾期多年,即使它看起来你不能真正做了升级出于政治原因。
这似乎是有内存泄漏的地方上的SQL Server端,也许在Informix ODBC驱动程序内存泄漏您使用造成的。
如果您不能升级任何东西,那么SQL Server的定期重启以清除累积的内存是最简单,最可靠的选择。既然你暗示它一次工作了几个月通常情况下,我想看看每月一次左右重新启动。
不隶属于 StackOverflow