質問

SQL Server 2000 Standard Edition SP3を実行している古いWindows 2000サーバーがあります。これには、ODBC接続を介してInformix DBに接続するためのリンクサーバーセットアップがあります。 1年のほとんどの間、リンクサーバーに対して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.

こちらで参照されている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 DBはバージョンInformix Dynamic Server 2000 9.21.UC2であるように見え、オプションとしてアップグレードまたはパッチを適用することはできません。

役に立ちましたか?

解決

IDS 9.21は長い間サポート対象外であることに注意してください-実際、9.30と9.40(IDSの後継バージョン)もサポート対象外です。政治的な理由で実際にアップグレードを行うことはできないように見えますが、アップグレードには何年も遅れています。

SQL Server側のどこかにメモリリークがあるようです。使用しているInformix ODBCドライバのメモリリークが原因である可能性があります。

何もアップグレードできない場合は、SQL Serverを定期的に再起動して、蓄積されたメモリをクリアするのが最も簡単で信頼性の高いオプションです。あなたはそれが通常一度に数ヶ月間働くことを暗示しているので、私は月に1回かそこらで再起動することを見ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top