場景:新開發的功能內測,新調用了其它模塊的接口,一如既往的點鼠標,計費,但是許久都沒有響應頁面遮罩一直鎖着,最后拋出了以下異常
咋一看這個異常信息,不就是鎖表了嗎?把鎖表進程Kill掉,再來一遍,結果還是同樣的異常,鎖表的異常只是最終的結果,是什么導致的鎖表呢?
於是到JBoss服務器尋求更多的異常信息,找到線索。
查看JBoss服務器日志發現了內存溢出的情況,查看堆棧信息發現在業務代碼的78行,
StringBuilder在進行append時,出現的異常。
轉移突破點,分析代碼:
先給大家提一個問題(埋個伏筆)
沒錯,在while死循環下進行了StringBuild的拼接,進程一直未走完,事務一直未提交,導致數據庫先拋出了鎖表的異常,當StringBuild不斷的進行拼接,最后導致內存溢出。