您好,登錄后才能下訂單哦!
本篇內容介紹了“weblogic配置數據庫連接的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1、問題描述
附件同步會發送文件消息給消息中間件,然后會刪除數據庫中對應附件記錄,不斷的重復這樣的過程,但是最近的附件同步好像進入了死循環,消息中間件里的附件數量一直在增加,可以看到下面的阻塞的附加數量已經到1萬了,平時一天只有幾百的附件,怎么會有這么大的附件數量呢
2、分析
boolean successFlag = SyncManagerService.getInstance().sendMessageToMQ(message); Log.info("[LiEMS數據同步引擎日志--附件] 發送消息隊列結束 結果successFlg為" + successFlag); if (successFlag) { Log.info("[LiEMS數據同步引擎日志--附件] 刪除生產庫的dkdocmst_temp表記錄開始"); deleteTempData(db, detailDataObj); Log.info("[LiEMS數據同步引擎日志--附件] 刪除生產庫的dkdocmst_temp表記錄結束"); }
先把文件發送到消息中間件,然后刪除數據庫對應的記錄,下次同步的就是以后的附件,這里怎么會重復發送呢,再者我們上面這段代碼是放在同步塊里的啊
synchronized (SyncBizFileDataToMQService.class) { }
初步懷疑就是數據庫沒有刪除成功,這時就要找證據了,打開日志發現如下內容
[ERROR][2019-07-04 17:51:53][SYSTEM]net.luculent.core.database.DBException: Connection has already been closed. with sql is delete from DKDOCMST_TEMP where DOC_ID = '1146689096949694464' and TEMP_PKVAL = '1198020'
3、原因
從上面來看數據庫連接被自動釋放了,有個直覺就是發送附件時間太長,不活動連接多長時間就自動釋放,但是發送大附件的又不是頭一次,肯定是現場改了配置,于是聯系現場人,現場人說優化過weblogic的參數,各種截圖給我確認,可是看著都不像,最后想到weblogic的數據庫連接參數都是在配置文件中的,于是打開配置文件驚奇的發現了一個配置項Inactive Connection Time-Out,配置了60,立刻讓現場人去掉這個配置,現場人也和我解釋是根據優化手冊配置的,總結一下吧,畢竟花了很長時間排查這個問題,最后附上這個參數的含義:https://blogs.oracle.com/saas-fusion-app-performance/inactive-connection-time-out
“weblogic配置數據庫連接的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。