Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
今天也碰到了這個問題, google 了一下,沒想到 ghj 1976已經寫過blog 了.呵呵,容易犯的錯誤.
http://blog.joycode.com/ghj/archive/2004/06/15/24612.aspx
轉貼一下:
如果你使用的資料庫連線類是 the Data Access Application Blocks "SqlHelper" 或者 SqlClient Class , 你在執行一個很費時的SQL 操作時候,可能就會碰到下面的超時異常。
---------------------------
---------------------------
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
---------------------------
OK
---------------------------
你會說,我在連線字串中已經 設定了 Connect Timeout=80000 ,並且資料庫中超時連線也是設定的值是一個很大的值。為啥到了30秒,仍然超時了呢??
這是因為:
你的設定並沒有問題,是你混淆了 SqlCommand.CommandTimeout 和 SqlConnection.ConnectionTimeout 這兩個的區別了。
你的連線字串中的超時只是設定的 SqlConnection.ConnectionTimeout 的值,而不是設定的 SqlCommand.CommandTimeout 的值。
SqlHelper 中並沒有 SqlCommand.CommandTimeout 的相關設定。需要你自己設定。
下面是兩個的比較:
SqlCommand.CommandTimeout
獲取或設定在終止執行命令的嘗試並生成錯誤之前的等待時間。
等待命令執行的時間(以秒為單位)。預設為 30 秒。
SqlConnection.ConnectionTimeout
獲取在嘗試建立連線時終止嘗試並生成錯誤之前所等待的時間。
等待連線開啟的時間(以秒為單位)。預設值為 15 秒。
一些更詳細的對這個問題的描述看:
http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=357
這個問題可以算是 SqlHelper 設計的時候,一個考慮不周的地方吧。
SqlCommand.CommandTimeout 的預設值是30,對於我寫的大多數程式來說,這個值足夠了。所以一直都沒有發現SqlHelper的這個問題。今天在查本地一臺比較差的機子上生成一個超長帖子(近4000個回覆)無響應的問題時候,才發現SQLHelper 存在的這個問題。
相關文章
- Timeout expired. The timeout period elapsed prior to completion of the operation or the server is noServer
- mysql timeoutMySql
- Database TimeoutDatabase
- SQLNET.RECV_TIMEOUT & SQLNET.SEND_TIMEOUTSQL
- mysql的wait_timeout和interactive_timeoutMySqlAI
- MySQL Timeout解析MySql
- 【MySQL】淺析interactive_timeout和wait_timeoutMySqlAI
- MySQL之wait_timeout和interactive_timeout引數MySqlAI
- 鎖:innodb_lock_wait_timeout和 innodb_rollback_on_timeout?AI
- Mysql引數解釋---wait_timeout、interactive_timeoutMySqlAI
- XMLHttpRequest timeout 屬性XMLHTTP
- IPC Send timeout detected
- Linux timeout命令Linux
- 【Mysql】MySQL中interactive_timeout和wait_timeout的區別MySqlAI
- angularjs之$timeout指令AngularJS
- yarn socket connection timeoutYarn
- INBOUND_CONNECT_TIMEOUT與SQLNET.INBOUND_CONNECT_TIMEOUT小結SQL
- interactive_timeout和wait_timeout引數區別和設定策略AI
- MySQL的timeout那點事MySql
- JS實現非同步timeoutJS非同步
- IPC Send timeout故障現象
- [轉]Setup Session Timeout In Oracle BIEESessionOracle
- Asp.Net Set Http TimeoutASP.NETHTTP
- SAP Spartacus 會使用 Session timeout 嗎?Session
- redis connect timeout問題排查Redis
- HttpWebRequest的timeout和ReadWriteTimeoutHTTPWeb
- 設定Shell command的timeout
- ORA-600 [kjbrchkpkeywait:timeout]AI
- Unix & Linux & Windows 配置Disk timeoutLinuxWindows
- thrift中的超時(timeout)坑
- MySQL:引數wait_timeout和interactive_timeout以及空閒超時的實現MySqlAI
- Nginx配置max_fails fail_timeoutNginxAI
- MySQL中wait_timeout的坑MySqlAI
- Switch to short timeout for ipc polling
- Nginx的超時timeout配置詳解Nginx
- 【問題處理】IPC Send timeout detected
- Got timeout reading communication packetsGo
- 5、Angular中的$timeOut定時器Angular定時器