2011-02-17 18 views
1

この例外は、SQL SELECTステートメントの1つから受け取ります。 sysmessagesテーブルにエラー3617が見つかりません。 .Classは25です。メッセージはありません。SqlClient.SqlException .Number = 3617 .State = 68

私たちはSql server 2005サーバーでそれを取得していることは分かっています。

これはいくつかのテーブルを結合し、CLRを使用していくつかのデータを結合して並べ替える大規模な選択であることはわかります。

このエラーを引き起こす原因は何か、またはエラーコードの意味を知ることができた場所は何ですか?

答えて

2

これを見てください:Discussion on Microsoft forums、司会者の回答を最後に投稿してください。

を更新しました:(フォーラムのポストから追加されたテキスト):

エラーコード3617は、システムの注目です。クライアントが実行中の要求をキャンセルすると、システムのアテンションは になります。これは、たとえば コマンドがタイムアウトした場合に発生します。ただし、このエラーは通常クライアントの には送信されません。

これが起こる可能性がある特殊なケースがあります。 プールされた接続を再使用すると、最初の送信要求では、要求に特別なビットフラグ が送信され、要求を実行する前にサーバーに 接続状態をリセットするように指示します。このビットにより、サーバは最初に接続状態をクリアしてからコマンドを実行します。 SQL Serverの負荷が高く、このビットが設定されていて、接続の状態をリセットするのに時間がかかる場合は、 システムに注意が必要です。これにより、 への接続のリセットがキャンセルされ、この場合、3617がクライアントに送信されたことがわかります。

が本来のエラーコードである (このエラーが発生する場合と発生しない場合があるため)を送信することを避けるため、このコードを現在のリリースで強化しました。どちらの場合でも、 は、このエラーを次のように考えることができます: "現在のコマンド で重大なエラーが発生した場合は、結果を破棄する必要があります。

それがこの問題であれば、以下のようなエラー のためのあなたのSQLエラーログを調べ、確認するには、接続プールのためにリセットされたSPID 51、とのセッションを再利用しようとしたときに、タスクアボートが要求された

spid51。セッション が終了します。