QA@IT
«回答へ戻る

回答を投稿

「SqlConnectionをnewする」ことが、「10~20分後くらいからハンドル数が増え始めます」の直接の原因であることは確認済ですか? (new するコードが無い場合は増えることはないのを確認するなどして)

また、それがハンドルリークだと判断した根拠はなんでしょう? 以下の記事に書いてあるようなことを行った結果ということでしょうか?

ハンドルリークの調査方法 ~ ハンドルリークとは?
http://keicode.com/iis/iis504.php

でも、

ある程度増えるとガベージコレクションが働くのか、ハンドル数が一気に減ります。

ということですと「リーク」ではないような気がします。

上に紹介した記事に、

"逆に閉じるのを忘れてしまうと、いつまでもリソースが残ります。この状態がハンドルリークです。 つまりハンドルリークとはハンドルの閉じ忘れにより、プロセス内に無駄なリソースが蓄積された状態になることです。 逆に閉じるのを忘れてしまうと、いつまでもリソースが残ります。この状態がハンドルリークです。 つまりハンドルリークとはハンドルの閉じ忘れにより、プロセス内に無駄なリソースが蓄積された状態になることです"

と書いてありますが、質問者さんのケースではそういう状況には至ってない、すなわち「リーク」ではなくて正常な動きの範囲という気がします。

「SqlConnectionをnewする」ことが、「10~20分後くらいからハンドル数が増え始めます」の直接の原因であることは確認済ですか? (new するコードが無い場合は増えることはないのを確認するなどして)

また、それがハンドルリークだと判断した根拠はなんでしょう? 以下の記事に書いてあるようなことを行った結果ということでしょうか?

ハンドルリークの調査方法 ~ ハンドルリークとは?
http://keicode.com/iis/iis504.php

でも、

> ある程度増えるとガベージコレクションが働くのか、ハンドル数が一気に減ります。

ということですと「リーク」ではないような気がします。

上に紹介した記事に、

"逆に閉じるのを忘れてしまうと、いつまでもリソースが残ります。この状態がハンドルリークです。 つまりハンドルリークとはハンドルの閉じ忘れにより、プロセス内に無駄なリソースが蓄積された状態になることです。 逆に閉じるのを忘れてしまうと、いつまでもリソースが残ります。この状態がハンドルリークです。 つまりハンドルリークとはハンドルの閉じ忘れにより、プロセス内に無駄なリソースが蓄積された状態になることです"

と書いてありますが、質問者さんのケースではそういう状況には至ってない、すなわち「リーク」ではなくて正常な動きの範囲という気がします。