我的應用程序同時使用RMI和JDBC與遠程系統和數據庫進行通信。雖然數據庫問題已經解決,但事實證明,RMI正在導致Tomcat 6檢測到某種形式的內存泄漏(我也嘗試過使用Tomcat 7並且我們遇到同樣的問題)。RMI/Tomcat 6內存泄漏
基本上,當我們啓動應用程序並且用戶在網頁中輸入信息時,RMI調用將被髮送到後端系統。如果我們停止/啓動或重新啓動應用程序,Tomcat Manager現在可以檢測到內存泄漏。如果我們啓動應用程序並且不進行RMI調用,我們可以開始/停止&整天重新啓動應用程序而沒有問題。
有誰知道需要做什麼來防止RMI調用在重新加載時導致WebappClassLoader中的內存泄漏,或者在Web服務器仍在運行時停止/啓動?
tomcat的消息是什麼?是關於ThreadLocal的嗎? – ZhongYu
不,就是這樣 - 日誌中沒有錯誤消息。但是,Tomcat Manager聲稱,如果在使用RMI調用的應用程序中執行某些操作後單擊「查找泄漏」按鈕,然後使用管理器重新加載/停止應用程序,則會發現泄漏。我可以在jvisualvm中看到確實創建了一個新的WebappClassLoader(上下文)。 – kvgeorge1