私たちは現在、私たちの手には少しの状況しかありません。誰かがどこかでコードの接続を閉じるのを忘れたようです。その結果、接続プールは比較的早く消耗します。一時的なパッチとして、Webサービスの接続文字列にMax Pool Size = 500;
を追加し、すべての接続が完了した時点でプールをリサイクルしてから、これを把握します。 SPIDの15分間使用されていないことを得るためにプール内のすべての接続が使用されています
SELECT SPId
FROM MASTER..SysProcesses
WHERE DBId = DB_ID('MyDb') and last_batch < DATEADD(MINUTE, -15, GETDATE())
:
これまでのところ、我々はこれを行っています。
DBCC INPUTBUFFER(61)
が、表示されたクエリは、接続操作に関する基本レベルで何かが壊れた、または当社の控除が誤ってたのいずれかを意味し、様々です:私たちは、今でそのSPIDを使用して、最後に実行されたクエリを取得しようとしています。 ..
ここに私たちの考えに誤りはありますか? DBCC/sysprocessesは、期待している結果をもたらすのか、それとも副作用があるのでしょうか? (例えば、プールの影響で接続?)
(してください、コードをした男が今、多くの、すべての存在しないので、私たちはSQLを使用して見つけることができるものに固執する)
「コードを実行した人は多く、現在はすべて存在していません」.. SQLコネクションを閉じるのを忘れてしまったときに、それらがすべてそこにあるとは思わない。 ;) –
あなたはソースコードを正しく持っていますか?彼らは意図的に周囲の接続を渡していない限り、すべての接続が開いて、それらを閉じることを探すことは困難ではない... –
@will @mitch - あなた* do notは*コードを見て、私を信じたい:)最終的には、それは最終的には唯一の選択肢でした...そして、try-finally {close}をどこにでも置くことによって修正しました... – veljkoz