2

私は2つのプログラムを持っています:

  • データを生成し、MSSQL に挿入するサーバー (C++ で作成され、接続に ODBC を使用)。
  • MSSQL からデータを読み取り、それをユーザーに表示するクライアント (.NET (C#、VB) で記述され、.Net SqlClient を使用)。

今私の問題は、サーバーが実行されていてデータを MSSQL に挿入するときに、クライアントがそこからデータを選択できないか、接続が失敗することさえあります。現在、サーバーとクライアントの両方を 1 台のマシンで実行していますが、ネットワーク上で実行する必要があります。接続文字列を増やそうとしましたがconnection timeout、時々機能しますが、常に機能するとは限りません。サーバーの負荷はそれほど高くありません (1 秒ごとに 1 回挿入される可能性があります)。では、サーバーの何が問題なのか、エラーを見つけるにはどうすればよいのでしょうか?

4

1 に答える 1

1

読み取りクライアントが接続できない場合は、その理由を理解する必要があります。それは他のクライアントの書き込みとは何の関係もありません。

読み取りクライアントが正常に接続しているが、それが発行するクエリがタイムアウトし、クエリが安全に実行されるはずである場合 (たとえば、数秒)、それはロック (おそらくコミットされていないトランザクションによって保持されている) の兆候です。問題が発生したら、サーバー上の sys.dm_tran_locks などをチェックして、テーブルのロックを保持しているプロセスを確認します。

于 2013-01-16T06:12:16.383 に答える