1

SQL Server 2000 Standard Edition、SP3を実行している古いWindows2000サーバーがあります。これには、ODBC接続を介してInformixDBに接続するためのリンクされたサーバー設定があります。1年のほとんどの間、リンクサーバーに対してOPENQUERYを実行すると、問題なく正常に動作します。ただし、数か月ごとにこのリンクサーバーに障害が発生し、SQLServerが再起動されるまで再び機能しません。EnterpriseManagerに表示されるエラーは次のとおりです。

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

これを引き起こす可能性のあるアイデアはありますか?サーバーの障害や設定の変更は認識されておらず、再起動すると常にこれが修正されるようです。InformixDBはバージョンInformixDynamicServer 2000 9.21.UC2のようであり、アップグレードまたはパッチ適用はオプションとして使用できません。

4

1 に答える 1

1

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

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

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

于 2009-08-05T15:23:47.103 に答える