domino中java代理導致記憶體溢出問題的解決方案
來源:互聯網
上載者:User
環境:DOMINO6.02 主機:as400-820
我用JAVA寫了一個代理,編譯和運行均正常。但此代理運行幾百次後,就會報錯:java.lang.OutOfMemoryError,估計是記憶體溢出錯誤。我的程式中已對記憶體做了清理,代碼如下:
sysdoc.recycle();
sysview.recycle();
view.recycle();
doc.recycle();
db.recycle();
System.gc();
試問各位高手,這是什麼原因呢。是DOMINO的JAVA虛擬機器問題還是DOMINO的設定問題呢。
---------------------------------------------------------------
呵呵,去年我就問過這個問題,我的一個java代理 ,迴圈運行幾千次,就出現這個錯誤,到現在還沒有解決.個人認為是domino的jvm問題.
---------------------------------------------------------------
記憶體流失阿 java虛擬機器的記憶體回收 啟動的太慢, 建議你把 java虛擬機器的初始分配存
開大點 如果你記憶體足夠多 應該沒有問題 注意domino只能用4gb的記憶體 呵呵
就此問題我已請教了清華紫光的as400工程師,他說可能是DOMINO的JVM有問題,建議我去打補丁,唉,可是補丁從哪找呀....
另問一下bug0303(補丁)兄,你這個問題是在PC上還是在400上遇到的。
經諮詢,得到以下緩解方法:
在伺服器的 notes.ini 檔案中,可以增加一個參數:
JavaMaxHeapSize=<位元組數>
這個參數的具體數值應該根據伺服器的硬體環境和應用程式的實際需要來調整,預設的值應該是64M,可以根據情況適當往大調一下。例如,“JavaMaxHeapSize=268435456” 將此值設為256MB。
注意 增加或修改此參數後,應重新啟動 Domino 伺服器。
如再無更好的方法,本貼將結貼。
經測試,增加JVM緩衝不能解決此問題,IBM工程師也承認這是DOMINO的JVM有問題。
介此,我已用LS將這段JAVA改寫,實現了同樣的功能。