解決oledb連線超時需要等待15秒的辦法
oledb在資料庫未開情況下,需要等待15秒才會超時或報錯,改什麼超時時間都不起作用。
什麼try catch之類的都是浮雲.
即然資料庫在正常情況下都是秒執行,那就從這個地方入手,能夠正常返回來資料就表示正常,返不回來就有問題。
解決辦法:利用非同步超時原理,在指定時間內不返回直接判為超時,超時就證明連線有問題 。
1.首先建立超時類
#region 帶超時非同步執行
///
/// 帶超時非同步執行sql
///
public class sqlinvoke
;threadpool.queueuserworkitem(new waitcallback(workmethod), checkpar);
if (autoevent.waitone(ms))
else
}private static void workmethod(object obj)
}internal class checkpar
public autoresetevent autoresetevent
}#endregion
2.呼叫 (資料庫正常情況下正常執行,不正常時則會返回超時)
dataset ds = null;
//委託執行,返回false表示正常,返回true則超時
bool flag= sqlinvoke.invoke(delegate
);
為什麼四次握手之後需要等待2MSL
tcp釋放過程如下圖 為什麼a在time wait狀態必須等待2msl的時間呢?1 為了保證a傳送的最後乙個ack報文段能夠到達b。這個ack報文段有可能丟失,因而使處在last ack狀態的b收不到對已傳送的fin ack報文段的確認。b會超時重傳這個fin ack報文段,而a就能在2msl時間內...
SSH 連線超時解決辦法
高版本的 linux 自帶的openssh 在使用的時候,幾分鐘不操作的話就會自動斷開連線,這是出於安全的考慮,但是對於需要長時間使用的使用者來說很麻煩,每次都要重新連線。原因有多種 環境變數 tmout 引起,clientalivecountmax 和clientaliveinterval 設定問...
mysql 連線超時解決方法
jdbc開發時候遇到mysql連線超時,斷開服務的問題。經過查資料,找到問題解決方法,總結如下。問題原因 由於mysql服務在長時間不連線之後斷開了,斷開之後的首次請求會丟擲這個異常。既然是連線超時的問題,就要去mysql中 一下連線時間是怎麼 控制的。開啟mysql的控制台,執行 show var...