链接服务器错误的未知原因

时间:2009-08-05 14:25:54

标签: sql-server informix linked-server

我们有一台运行SQL Server 2000 Standard Edition SP3的旧Windows 2000服务器。这有一个链接服务器设置,通过ODBC连接连接到Informix DB。在一年中的大部分时间,对链接服务器运行OPENQUERY工作正常,没有任何问题。 但是,每隔几个月,此链接服务器就会失败,并且在重新启动SQL Server之前不会再次运行。 我们在企业管理器中看到的错误是:

---------------------------
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.

如果我应用引用here的TRACE标志,我会得到更多细节:

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数据库似乎是Informix Dynamic Server 2000 9.21.UC2版本,升级或修补它不作为选项提供。

1 个答案:

答案 0 :(得分:1)

请注意IDS 9.21长期不受支持 - 事实上,9.30和9.40(IDS的后续版本)也不受支持。你已经过了多年的升级期,尽管看起来你出于政治原因无法真正进行升级。

似乎SQL Server端某处存在内存泄漏,可能是由您正在使用的Informix ODBC驱动程序中的内存泄漏引起的。

如果无法升级任何内容,则定期重新启动SQL Server以清除累积的内存是最简单,最可靠的选项。既然你暗示它通常一次工作几个月,我会看一个月左右重启一次。

相关问题