teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

補足情報追記

2020/07/31 02:46

投稿

hnikichi
hnikichi

スコア0

title CHANGED
File without changes
body CHANGED
@@ -76,6 +76,14 @@
76
76
  接続文字列に"ConnectionTimeout=0;" 追記
77
77
  接続文字列に"ConnectRetryInterval=1;" 追記
78
78
 
79
+ ネットワークドライバの更新
80
+ ネットワークドライバの変更
81
+
79
82
  ### 補足情報
80
83
 
81
- SQLServer2019の入ってるサーバーでアプリを実行しても同様の現象が出るが、LANケーブルを抜くと出ない。
84
+ SQLServer2019の入ってるサーバーでアプリを実行しても同様の現象が出るが、LANケーブルを抜くと出ない。
85
+
86
+ ネットワーク環境によって挙動が変わったので追記します。
87
+ SQLServerにWinformアプリを入れてLANケーブルをささずに検証・・・OK
88
+ SQLServerにLANケーブルをさす・・・NG
89
+ 接続先のネットワークにWindowsのDC追加・・・OK

1

7/31 検証分の追記

2020/07/31 02:46

投稿

hnikichi
hnikichi

スコア0

title CHANGED
File without changes
body CHANGED
@@ -14,6 +14,12 @@
14
14
 
15
15
  大体30秒~40秒ぐらいの感覚でExecuteReaderメソッドが2秒ほど止まります。
16
16
 
17
+ 7/31追記
18
+ テストプログラムを作成し、3分ほど5秒間隔でExecuteReader()を実行して、実行する前と後で、時間を出力しています。下記のような感じです。 09:46:00 ExecuteReader() 09:46:00
19
+ 09:45:55 ExecuteReader() 09:45:57
20
+ 09:45:50 ExecuteReader() 09:45:50
21
+ 真ん中のように30秒程度の間隔でメソッドの前後で2秒ほど空きます。
22
+
17
23
  ### 該当のソースコード
18
24
 
19
25
  □DLL内
@@ -30,6 +36,41 @@
30
36
 
31
37
  }
32
38
 
39
+ 7/31追記
40
+ 下記のようなテストコードで再現
41
+ private void Button_Click(object sender, EventArgs e)
42
+ {
43
+ test a = new test();
44
+ a.Read();
45
+ }
46
+ class test
47
+ {
48
+ void read()
49
+ {
50
+ System.Data.SqlClient.SqlConnection cnc = new System.Data.SqlClient.SqlConnection();
51
+ cnc.ConnectionString = [接続文字列];
52
+ cnc.Open();
53
+ System.Data.SqlClient.SqlCommand cmd = cnc.CreateCommand();
54
+ cmd.ComandText = "SELECT TOP1 * FROM [テーブル] WHERE [コード] = 1";
55
+ System.Data.SqlClient.SqlDataReader rst = cmd.ExecuteReader(); //30秒に一回ぐらいここで2秒ほど止まる
56
+ rst.Close();
57
+ cnc.Close();
58
+ }
59
+ }
60
+
61
+ ただし、イベントに直接記述するとならない
62
+ private void Button_Click(object sender, EventArgs e)
63
+ {
64
+ System.Data.SqlClient.SqlConnection cnc = new System.Data.SqlClient.SqlConnection();
65
+ cnc.ConnectionString = [接続文字列];
66
+ cnc.Open();
67
+ System.Data.SqlClient.SqlCommand cmd = cnc.CreateCommand();
68
+ cmd.ComandText = "SELECT TOP1 * FROM [テーブル] WHERE [コード] = 1";
69
+ System.Data.SqlClient.SqlDataReader rst = cmd.ExecuteReader(); //30秒に一回ぐらいここで2秒ほど止まる
70
+ rst.Close();
71
+ cnc.Close();
72
+ }
73
+
33
74
  ### 試したこと
34
75
 
35
76
  接続文字列に"ConnectionTimeout=0;" 追記