標籤:
-- 查詢mysql 資料庫連結空閑時間持有最大空閑時間,單位為秒
SHOW VARIABLES WHERE VAriable_name = ‘interactive_timeout‘;
-- 會出現wait_timeout與該參數意思相近,修改時,一起修改
SHOW VARIABLES WHERE VAriable_name = ‘%timeout‘;
-- 解決問題
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Caused by: org.hibernate.TransactionException: JDBC commit failed
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:130)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:657)
... 29 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
-- 注意點
(1) 碰到這樣的問題,先確定是否事務的開啟後空閑時間太長導致事務的連結被回收掉了,只要你對資料庫進行操作,就不算閑置,不會出現這個問題
(2) 網路出現問題,導致資料庫無法連結
(3)
-- linux 系統查詢檔案中字串所在檔案行數
grep -A 10 -B 5 "查詢資料字串" catalina.out.2015-10-14.log |more
grep -rn "查詢字串" 檔案名稱
-- p表示行,不能省去
sed -n ‘起始行, 結束行p‘ catalina.out.2015-10-14.log
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 資料庫報錯