TIL

Today I Learned. 知ったこと、学んだことを書いていく

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
        }

参考文献