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