web-dev-qa-db-ja.com

Threat Management Gateway2010がSQL接続を強制終了しています

私の会社は、Windows 2008R2サーバーのファイアウォール/ WebプロキシとしてTMG2010の使用を開始したばかりです。移動してから、SQLServerへのすべての接続は約30秒後に閉じられます。

例えば:

  1. 正常に実行されるSSMSからクエリを実行します
  2. 30秒以上待つ
  3. クエリを再度実行すると、次のエラーで失敗します

    A transport-level error has occurred when sending the request to the server.
    (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote Host.
    
  4. クエリを再度実行すると、正しく機能します。

同じ問題は、実行に30秒以上かかるクエリでも発生します。

手順3のエラーは、SSMSが既存の接続が閉じられたことを認識していないためだと思います。

TMGログを見ると、次の情報でSQL接続が閉じられていることがわかります。

Closed Connection
Log type: Firewall service
Status: Unspecified error
Rule: Internal Internet Access
Source: Internal (xx.xx.xx.xx)
Destination: External (xx.xx.xx.xx:1433)
Protocol: Microsoft SQL (TCP)
The result code is: 0x80004005

背景情報については、SQLAzureに接続しようとしています。ただし、ラップトップをスイッチに直接接続し(TMGをバイパス)、同じSQLAzureインスタンスに問題なく接続できます。これに基づいて、問題がSQLAzureまたはTMGの上流にあるものにあるとは思わない。

TCP煙突の設定を非難する記事をいくつか見つけましたが、これはWindows Server 2003に当てはまるようで、いずれにしても無効にしようとしても成功しませんでした。

これに関する助けをいただければ幸いです。

編集:TMGはかなり古くなっていたことが判明しました。SP2にアップグレードしましたが、問題は解決しません。

編集:現在1800秒に設定されているWebプロキシ設定で最大接続タイムアウトを見つけました。 Webプロキシが1433を介したSQL接続に関連しているかどうかさえわかりませんが、アイデアが不足しているため、プロキシを完全に無効にしました。残念ながら、これは役に立ちませんでした。

私が見逃しているアイドルtcpタイムアウトの別の場所はありますか?

5
Dan Rowlands

私はついにマイクロソフトのサポートの助けを借りて問題を解決することができました。 TMGサーバーがSSMSからキープアライブパケットを受信して​​いる間、TMGはそれらのパケットをSQLAzureに転送していなかったようです。

マイクロソフトから提供されたvbスクリプトを使用して、問題に関するブログ投稿を完全に作成しました。

http://www.danrowlands.co.uk/2012/03/sql-connections-timing-out-with-tmg.html

1
Dan Rowlands