我们有一个运行SQL Server 2000 Standard Edition SP3的旧Windows 2000 Server。它有一个链接服务器设置,通过ODBC连接连接到Informix数据库。在一年中的大部分时间里,对链接服务器运行OpenQuery都很好,没有任何问题。
但是,每隔几个月,此链接服务器就会失败,并且在SQL Server重新启动之前不会再次工作。
我们在Enterprise Manager中看到的错误是:
---------------------------
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
我得到了更多的细节:
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,升级或修补它不是一个选项。