トップ回答者
イベントID:6481

質問
-
Msgが日本語なので情報があるかと思いましたが、検索しても見つからないので投稿させていただきました。
以下のMSGが不定期にIndexサーバに出力されます。(環境:Windows2008/SQL2008/MOSS64ビット版)
=========================
サービス インスタンス
Microsoft.Office.Server.Search.Administration.SearchDataAccess
ServiceInstance (1988cfe7-85a8-4951-b43d-dc5a5e77caa5)に対するアプリケーション サーバー ジョブが失敗しました。
原因:
タイムアウトに達しました。プールから接続を取得する前にタイムアウト期間が過ぎました。プールされた接続がすべて使用中で、プールサイズの制限値に達した可能性があります。
技術サポートの詳細:
System.InvalidOperationException:
タイムアウトに達しました。プールから接続を取得する前にタイムアウト期間が過ぎました。プールされた接続がすべて使用中で、プールサイズの制限値に達した可能性があります。
=========================
検索すると
http://social.technet.microsoft.com/Forums/en-US/sharepointsearch/thread/8e548ece-c49b-46c5-b313-e80c7b3211b3
が引っかかりましたが、Reason以下が合致しません。
なにか情報があれば、ご教授ください。2010年2月1日 1:57
回答
-
Jun Ohama さん、
こんにちは!
フォーラム オペレーターの服部清次です。
ご質問の件に関しまして、私の方で国内外の情報を探ってみたのですが、、、Jun Ohama さんのおっしゃるとおり、残念ながら、ピンポイントな情報は見つかりませんでした。。。 (-"-)
そこで、ちょっと視点を変えて、エラーメッセージ内の 「原因」 と 「技術サポートの詳細」 という部分だけに着目して調べましたところ、以下のような情報が見つかりました。
http://meenrajan.blogspot.com/2005/06/systeminvalidoperationexception.html (英語)
上記のスレッドでは、SharePoint 開発において 「タイムアウトに達しました。 プールから接続を取得する前にタイムアウト期間が過ぎました。プールされた接続がすべて使用中で、プールサイズの制限値に達した可能性があります」 というエラーが発生した際の解決策が紹介されています。
現在 Jun Ohama さんから提供していただいている情報だけでは、Jun Ohama さんが SharePoint 開発をされているのかどうかが分かりませんので、もしかすると外れていているかもしれませんが、参考までに、上記のスレッドで紹介されている解決策を和訳して紹介させていただきますね。 (^^;)
↓↓↓↓ ここから ↓↓↓↓
解決策:
この問題は、ADO.NET を使用し始めたばかりの方がよく遭遇するもので、データベースへの接続数が超過していることにあります。 これは、(スコープ外のオブジェクトと異なり) データベース接続に対しては、すぐにガベージ コレクションが行なわれないためです。 ガベージ コレクターは、参照を持たなくなったオブジェクトを削除することを目的としており、接続を終了しません。 従って、接続を明示的に終了し忘れた場合、限度に達する可能性があります。
最良の解決策:
以下を呼び出す必要があります。
1. Connection.Close()
2. そして次に Connection.Dispose()
これは、Connection.Close() を呼び出すことによって、開いている接続が終了され、プールに戻されるためです。 しかし、それでも削除されていないアンマネージ リソースが残っている可能性があります。 Connection.Dispose() の呼び出しは、Connection.Close() の呼び出しやアンマネージ リソースのクリーンアップ、他の幾つかの作業を行ないます。 しかし、害はありませんので、これら両方のメソッドを呼び出す方が安全です。
↑↑↑↑ ここまで ↑↑↑↑
Jun Ohama さんが遭遇されているエラーに関しましては、あまりにも情報がないため、もし上記の情報があまり参考にならないようでしたら、もしかすると、弊社のサポート窓口 (http://support.microsoft.com/select/?target=assistance) へのお問い合わせをご検討いただいた方が良いかもしれません。。。
不明瞭な形での情報提供になってしまいましたが、こちらの情報が少しでもお役に立つことを願っています。
それでは、また! (^_^)/
_______________________________________________
マイクロソフト株式会社 フォーラムオペレーター 服部 清次2010年2月5日 7:19
すべての返信
-
Jun Ohama さん、
こんにちは!
フォーラム オペレーターの服部清次です。
ご質問の件に関しまして、私の方で国内外の情報を探ってみたのですが、、、Jun Ohama さんのおっしゃるとおり、残念ながら、ピンポイントな情報は見つかりませんでした。。。 (-"-)
そこで、ちょっと視点を変えて、エラーメッセージ内の 「原因」 と 「技術サポートの詳細」 という部分だけに着目して調べましたところ、以下のような情報が見つかりました。
http://meenrajan.blogspot.com/2005/06/systeminvalidoperationexception.html (英語)
上記のスレッドでは、SharePoint 開発において 「タイムアウトに達しました。 プールから接続を取得する前にタイムアウト期間が過ぎました。プールされた接続がすべて使用中で、プールサイズの制限値に達した可能性があります」 というエラーが発生した際の解決策が紹介されています。
現在 Jun Ohama さんから提供していただいている情報だけでは、Jun Ohama さんが SharePoint 開発をされているのかどうかが分かりませんので、もしかすると外れていているかもしれませんが、参考までに、上記のスレッドで紹介されている解決策を和訳して紹介させていただきますね。 (^^;)
↓↓↓↓ ここから ↓↓↓↓
解決策:
この問題は、ADO.NET を使用し始めたばかりの方がよく遭遇するもので、データベースへの接続数が超過していることにあります。 これは、(スコープ外のオブジェクトと異なり) データベース接続に対しては、すぐにガベージ コレクションが行なわれないためです。 ガベージ コレクターは、参照を持たなくなったオブジェクトを削除することを目的としており、接続を終了しません。 従って、接続を明示的に終了し忘れた場合、限度に達する可能性があります。
最良の解決策:
以下を呼び出す必要があります。
1. Connection.Close()
2. そして次に Connection.Dispose()
これは、Connection.Close() を呼び出すことによって、開いている接続が終了され、プールに戻されるためです。 しかし、それでも削除されていないアンマネージ リソースが残っている可能性があります。 Connection.Dispose() の呼び出しは、Connection.Close() の呼び出しやアンマネージ リソースのクリーンアップ、他の幾つかの作業を行ないます。 しかし、害はありませんので、これら両方のメソッドを呼び出す方が安全です。
↑↑↑↑ ここまで ↑↑↑↑
Jun Ohama さんが遭遇されているエラーに関しましては、あまりにも情報がないため、もし上記の情報があまり参考にならないようでしたら、もしかすると、弊社のサポート窓口 (http://support.microsoft.com/select/?target=assistance) へのお問い合わせをご検討いただいた方が良いかもしれません。。。
不明瞭な形での情報提供になってしまいましたが、こちらの情報が少しでもお役に立つことを願っています。
それでは、また! (^_^)/
_______________________________________________
マイクロソフト株式会社 フォーラムオペレーター 服部 清次2010年2月5日 7:19 -
2010年2月19日 7:06