日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

No operations allowed after connection closed

發布時間:2023/12/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 No operations allowed after connection closed 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最近線上的項目出現了一個很奇怪的問題,從開發到上線一直沒有問題,但是今天早上10點左右突然被通知說系統訪問異常,經過排查日志錯誤信息發現了此錯誤:No operations allowed after connection closed。

通過篩查發現是mysql服務端斷開了連接,導致服務連接mysql異常。

問題原因

MySQL5.0以后針對超長時間數據庫連接做了一個處理,即一個數據庫連接在無任何操作情況下過了 8 個小時后(MySQL 服務器默認的超時時間是 8 小時),MySQL 會自動把這個連接關閉。這就是問題的所在,在連接池中的connections如果空閑超過8小時,mysql將其斷開,而連接池自己并不知道該connection已經失效,如果這時有 Client請求connection,連接池將該失效的Connection提供給Client,將會造成上面的異常。

解決方案

配置datasource時需要配置相應的連接池參數,定是去檢查連接的有效性,定時清理無效的連接。

#連接池配置 spring.datasource.max-idle=10 spring.datasource.max-wait=10000 spring.datasource.min-idle=5 spring.datasource.initial-size=5 spring.datasource.validation-query=SELECT 1 spring.datasource.test-on-borrow=false spring.datasource.test-while-idle=true spring.datasource.time-between-eviction-runs-millis=18800

配置完成重啟服務即可,問題得到解決。

還有另外的資料說修改服務端連接超時時間

show global variables like 'wait_timeout'; set global wait_timeout=172800;

此方法本人未測試,如有同學測試了請告知結果。

總結

出現本次問題的關鍵其實是本人對數據庫連接池知識欠缺及忽略了數據庫連接池的相關配置導致,后面需要惡補其知識,望大家共勉。

總結

以上是生活随笔為你收集整理的No operations allowed after connection closed的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。