jacob使用异常解决
生活随笔
收集整理的這篇文章主要介紹了
jacob使用异常解决
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一開始使用的是jboss7.0,因為安全要求,需要升級到Jboss7.3,做好測試環(huán)境后,開始發(fā)現jboss會莫名其妙退出。仔細檢查后發(fā)現,居然是段錯誤。
我一個java程序員,處理段錯誤是沒有經驗的。依據網上的內容,先查看hs_err_pidxxx.log文件
仔細一看,居然是Jacob報錯了,心想,不該啊,只是升級個jboss,關它什么事情。
出了問題就要解決,最初,懷疑是沒有做多線程訪問安全導致,于是,先改為單例模式,使用synchronized來修飾關鍵代碼。進行測試,依舊會掛掉,依舊是段錯誤。
摸不著頭腦,各種查資料,看到微軟官網有說,com口多線程調用是會有不可預期的異常,心里都生出來放棄的念頭了。準備改用其他方案。最后,還是決定死馬當活馬醫(yī),改一版。
然后,居然沒有出錯了,安全運行了兩周。以前最多三天就會掛掉。
具體修改方式,采用單例模式,每次調用時,初始化新的activeXCompent對象,在使用完畢后,調用safeRelease方法,依次釋放所有Jacob對象,并在最后一步,調用comThread.Release()方法釋放對象。
總結:comThread的釋放,需要手工完成,以阻止jvm的垃圾回收函數調用Release()方法,導致多次釋放同一對象,造成段錯誤。
總結
以上是生活随笔為你收集整理的jacob使用异常解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eNSP 静态路由
- 下一篇: vxworks pci驱动