ブログランキング・にほんブログ村へ
PVアクセスランキング にほんブログ村
子豚のココのお勧め商品 - にほんブログ村

■おすすめの商品
防災グッズ
Evopow ポータブル電源 ソーラーパネル セット リン酸鉄リチウム 1024Wh 出力1000W (瞬間最大2000W)とソーラーパネル 100W ポータブルバッテリー 22% 純正弦波 車中泊 防災 キャンプ 家庭用 アウトドア用
最新記事
写真ギャラリー
検索
カテゴリアーカイブ
タグクラウド
最新コメント
リンク集
RSS取得

広告

posted by fanblog

2017年09月21日

Microsoft SQL Server セッション切れ トランスポート レベルのエラー 確認方法

sqlerror.png

Microsoft SQL Server 予期しない接続切断


SQL Server を利用していて厄介なトラブルのひとつに「予期しない接続切断」があります。

●「サーバーに要求を送信しているときに、
 トランスポート レベルのエラーが発生しました。
  (provider: Shared Memory Provider, error: 0 - パイプの他端にプロセスがありません。)」

●「サーバーに要求を送信しているときに、
 トランスポート レベルのエラーが発生しました。
  (provider: TCP プロバイダ, error: 0 - 既存の接続はリモート ホストに強制的に切断されました。) 」

ネットワーク中継器機器に何らかの問題がある場合や、ネットワークやマシンの負荷、SQL Server サービスの停止、
タイムアウトなど、さまざまな要因があり、一筋縄で解決することはできません。

(参考) Troubleshooting Connectivity #3 – 予期しない接続切断

予防策


Microsoftでもこの現象を認識しており、
Scalable Networking Pack を推奨しているようです。

アプリケーションが SQL Server に接続するとエラー メッセージ "一般的なネットワーク エラーです"、"通信リンクが失敗しました"、または "トランスポート レベルのエラー" が表示される


対策


そうはいっても、きっちり予防しても発生する場合もあるので、
アプリ側で対策を嵩じる必要があります。

中でも最も有用な手段として、セッションの確認があります。

「select * from sys.dm_exec_sessions where host_name is not NULL」

上記SQLを実行すると以下のような結果が返ってきます。


session01.jpg


例えば、where 句に program_name = '製品名' などを与えことで、
特定のアプリケーションからの接続状態を確認することができます。

あとは、try〜chatchブロックの中にアクセス文を記述し、
SqlExceptionを拾うようにします。

(参考) SqlException クラス


また、SQL Server 側の設定で、多くはAuto Close が Trueになっていることで
発生することもあるようです。
この場合は、AUTO_CLOSE データベース オプションを OFF に設定 するようにしてください。

(参考) AUTO_CLOSE データベース オプションを OFF に設定

posted by 子豚のココ at 11:33 | Comment(0) | TrackBack(0) | RDBMS
この記事へのコメント
コメントを書く

お名前: 必須項目

メールアドレス: 必須項目


ホームページアドレス: 必須項目

コメント:

認証コード: 必須項目

※画像の中の文字を半角で入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/6724171

この記事へのトラックバック
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: