DB接続のタイムアウト - VB.NET
タイムアウトには「コネクションタイムアウト」と「コマンドタイムアウト」の2つがあるらしい。
タイムアウト時間を設定するためのプロパティがある
タイムアウト時間の初期値
タイムアウトに0を設定すると、無期限になる。これは、ずっと待ってしまうため、危険かな?
サンプルコード
SqlConnectionにタイムアウト時間を設定
' タイムアウト時間を1分に設定 Dim SECONDS as Integer = 60 Dim TIMEOUT=MIN As Integer = 1 sqlCon = New SqlConnection("Data Source = " & SERVER_NAME & ";Initial Catalog = " & DATABASE_NAME & ";User ID = " & USER_ID & ";Password = " & PASSWORD & ";Connection Timeout = " & SECONDS * TIMEOUT_MIN)
タイムアウトの時間は初期値で、リトライする処理でもいいのかもって思った
SqlCommandにタイムアウト時間を設定
Dim sqlCmd As New SqlCommand With { .Connection = SqlCon, .CommandType = CommandType.Text, .Transaction = tran, .CommandTimeout = SECONDS * TIMEOUT_MIN }