[FIX] SP_OA のメモリ リークがさまざまなエラーを引き起こす

この記事は、以前は次の ID で公開されていました: JP282229
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
OLE オートメーションをサポートする代表的なストアド プロシージャ sp_OAMethod、sp_OAGetProperty、および sp_OASetProperty の呼び出しにより、OLE オートメーション オブジェクトの操作 DLL (Odsole70.dll) ファイルで少量のメモリがリークします。これが原因で次のエラーが SQL Server のエラー ログに記録されることがあります。
2000-11-27 11:22:59.87 server SQL Server could not spawn process_loginread thread
2000-11-27 11:25:09.42 server SQL Server could not spawn process_loginread thread
次のエラー メッセージが記録されることもあります。
2000-11-27 11:55:06.09 spid431 WARNING:Failed to reserve contiguous memory of Size= 65536.
2000-11-27 11:55:06.09 spid1714 WARNING:Failed to reserve contiguous memory of Size= 65536.

非常にまれですが、このエラーが原因で SQL Server の処理が終了することもあります。上記の現象は通常サーバーが起動されてから時間がたち、かつ OLE オートメーション ストアド プロシージャが頻繁に使用されたときにのみ発生することに注意してください。
原因
sp_OA プロシージャを呼び出すと、割り当てた文字列が解放されず、呼び出すたびに数バイトずつリークします。リークするサイズは決まっておらず、その文字列に依存します。
解決方法
この問題を解決するために、SQL Server 2000 の最新の Service Pack の適用をお願いいたします。
最新の SQL Server サービスパックのダウンロードおよびインストールについて詳しくは以下をご覧下さい。

http://www.microsoft.com/japan/sql/download/default.asp (日本語版)
http://www.microsoft.com/sql/downloads/default.htm(英語版)
状況
弊社では、これを Microsoft SQL Server version 2000 の問題として確認しています。
この問題は、Microsoft SQL Server version 2000 Service Pack 1 で修正されています。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 282229 (最終更新日 2001-06-15) をもとに作成したものです。

memleak odsole ole70 dmo calls sp_oa procs
プロパティ

文書番号:282229 - 最終更新日: 01/16/2015 21:19:04 - リビジョン: 2.1

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive _ik kbbug kbfix kbsqlserv2000bug kbsqlserv2000sp1fix KB282229
フィードバック