我們有一臺運行SQL Server 2000標準版SP3的老式Windows 2000服務器。這有一個鏈接的服務器設置,通過ODBC連接連接到Informix數據庫。一年中的大部分時間,對鏈接服務器運行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我得到了更多的細節:
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 Dynamic Server 2000 9.21.UC2的版本,升級或修補它不可用作爲選項。
是的,我知道它已經過時了。我希望(可能是徒勞)會有一些事情可以做,以清除不需要重新啓動的錯誤,並隨後中斷使用該服務器的其他應用程序。 但我現在肯定會定期重啓。 – MartW 2009-08-05 15:58:59
除了要求升級外,IBM/Informix沒有任何功能可以用於過時的系統。您可能能夠獲得更新版本的ODBC驅動程序,並使用它來連接到舊服務器 - 這取決於IDS與SQL Server的關係。如果他們在同一臺機器上,那麼實現起來可能會更棘手 - 尤其是對於您使用的舊版本。較新的代碼具有更好的共存屬性 - 您可以在同一臺計算機上爲不同版本的ODBC單獨拷貝。如果SQL Server與IDS分開(在另一臺計算機上),請考慮升級ODBC。 – 2009-08-05 17:20:35