今天線上出現問題,查日誌,發下了以下報錯日誌信息:
abandon connection, owner thread: DubboServerHandler-10.66.177.126:22913-thread-199, connected at : 1593076989213, open stackTrace
at java.lang.Thread.getStackTrace(Thread.java:1559)
....堆棧信息
ownerThread current state is TIMED_WAITING, current stackTrace
.....堆棧信息
後來查資料
https://blog.csdn.net/wtopps/article/details/78343659
https://blog.csdn.net/xingshi89/article/details/46539061
原來項目中使用的druid連接池配置了removeAbandoned=true,removeAbandonedTimeoutMillis=180,出錯的業務代碼執行了很長時間,是一個長事務,剛好這時候,數據庫連接池檢測到該連接存活時間已經超過了removeAbandonedTimeoutMillis設置的值,把這個連接給幹掉了。
解決辦法呢,是將removeAbandonedTimeoutMillis設置成更大的值,當然,也得看下,爲什麼相應的操作耗時會那麼久,來做優化。