mysql - 如何顯式修改數據庫連接超時時間
問題描述
spring + mybatis
redis.incr(key); //redis計數加一try{ dbOPerHere(); //數據庫操作}catch (Exception e){ //若數據庫操作失敗 減一 redis.decr(key); }
想模擬網路異常 數據庫連接超時異常 通過如下方式模擬數據庫連接異常
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP
但發現要等差不多三分鐘 才會有超時異常另外一個奇怪現象 同樣的數據源配置 若換成測試服務器 超時時間為6分鐘 不知何故
Caused by: java.net.ConnectException: Connection timed out
如何顯式設置數據庫連接超時時間(如超時時間5秒), 不管是配置數據源 還是 修改mysql服務器的變量?使用的數據源如下
<bean destroy-method='close'>
或修改mysql服務器變量
>show variables like ’%timeout%’;+-----------------------------+----------+| Variable_name | Value |+-----------------------------+----------+| connect_timeout | 10 || delayed_insert_timeout | 300 || innodb_flush_log_at_timeout | 1|| innodb_lock_wait_timeout | 50 || innodb_rollback_on_timeout | OFF || interactive_timeout | 28800 || lock_wait_timeout | 31536000 || net_read_timeout | 30 || net_write_timeout | 60 || rpl_stop_slave_timeout | 31536000 || slave_net_timeout | 3600 || wait_timeout| 28800 |+-----------------------------+----------+
問題解答
回答1:/** * <strong>BasicDataSource does NOT support this method. </strong> * * <p>Set the login timeout (in seconds) for connecting to the * database.</p> * <p> * Calls {@link #createDataSource()}, so has the side effect * of initializing the connection pool.</p> * * @param loginTimeout The new login timeout, or zero for no timeout * @throws UnsupportedOperationException If the DataSource implementation * does not support the login timeout feature. * @throws SQLException if a database access error occurs */ public void setLoginTimeout(int loginTimeout) throws SQLException {// This method isn’t supported by the PoolingDataSource returned by// the createDataSourcethrow new UnsupportedOperationException('Not supported by BasicDataSource');//createDataSource().setLoginTimeout(loginTimeout); }
* <strong>BasicDataSource does NOT support this method. </strong> *
以上是dbcp連接池的源代碼,不知道這個LoginTimeout()具體是做什么的,僅供參考,并期待問題后續。
相關文章:
1. html5 - canvas中的mousedrag事件,為什么鼠標拖出canvas,然后再次移入canvas,drag事件還觸發2. html - 前端大牛都頂一下!CSS鼠標樣式問題,如圖所示3. 網頁爬蟲 - python爬蟲用BeautifulSoup爬取<s>元素并寫入字典,但某些div下沒有這一元素,導致自動寫入下一條,如何解決?4. css3 - 求教CSS圖標庫的寫法,也就是先做雪碧圖,然后寫一個css表,用的時候直接用class就可以了5. java - Android Studio 中的Service問題6. javascript - jquery怎么給select option一個點擊時觸發的事件,如圖 如果選擇自定義觸發一個時間?7. 百度地圖api - Android百度地圖SDK,MapView上層按鈕可見卻不可觸,怎么解決?8. javascript - es6擴展運算符...的問題9. node.js - 在nodejs環境中如何配置webhook以實現hexo博客的自動更新?10. node.js - vue-resource,如何改變響應格式?
