atomikos log already in use
關于atomikos 這個分布式事務管理開源包,有時候會報 ?log already in use 這樣的錯誤,每次刪除了服務中的一些文件就正常了,我大概說下原因。
如果項目中用了atomikos 來管理事物,那么在啟動web服務的時候,就會產生如下四個文件:tm.out、tm.out.lck和tmlog0.log、tmlog.log.lck(atomikos默認配置名字)
并且會將tm.out、tmlog0.log這兩個文件給鎖住,別人不可以用,直到web服務停止運行時候釋放鎖。
這樣一來,如果這兩個文件被鎖,又有其他地方用到這兩個文件的時候,系統就會報這個錯誤。
一般導致這兩個問題的原因我了解到的如下:
1.同一個web服務里運行多個項目,而這幾個項目中有多于一個項目用到了atomikos,會產生此問題,這樣解決的辦法需要修改atomikos源碼包。(公司項目基本不會出現一個web服務下跑多個應用項目)
2.在啟動web服務的時候,由于一些原因沒有及時的停掉服務,這時候又啟動的web服務,有可能鎖還沒有釋放就訪問了這兩個文件,也可以導致此錯誤。
? ?此問題可利用腳本重啟應用,在腳本中添加刪除tm.out文件的操作,從而解決該問題
一般出現此問題后需要手動停掉 web服務器,然后刪除唄鎖住的文件,在重新啟動web服務,重新生成文件即可解決此問題。
轉載于:https://blog.51cto.com/zhangshaoxiong/1278956
總結
以上是生活随笔為你收集整理的atomikos log already in use的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM常谈
- 下一篇: Appium运行时,error: Log