我在「開發模式」下運行TC 6,例如。應用程序類正在不斷變化,我想用最少的麻煩看到最新的版本。用Tomcat開發
有段時間我使用TC HTML'manager'應用程序來重新加載;這起到了一定的作用,但一段時間後我一直在收到OOM錯誤。衝浪表明,這種方式重新加載時,TC有泄漏。再加上這是一個麻煩,每次編譯後的額外步驟。
所以我切換到在context.xml文件中設置'reloadable true'。這可以達到一定程度,並且不需要任何額外的步驟,但是我又一次遇到了OOM錯誤(不太頻繁,但仍然每天很多次)。更多的衝浪表明,這裏也可能存在TC泄漏。
如果我使用'reloadable true'運行應用程序,但不重新編譯任何內容或使用'reloadable false',它將永遠運行(並且VisualVM認爲它可以正確記憶)。
所以我有種感覺,每次我重新編譯一個類時我應該完全重啓TC。這是一個巨大的痛苦,但也許比隨機的週期性OOM崩潰更好。只是想知道是否有人有更好的想法。也許我應該嘗試一個不同的容器。
乾杯和謝謝!
非常感謝回覆。 JRebel看起來像一個偉大的計劃,我會嘗試;它似乎是專門爲解決這個問題而設計的,這表明我沒有做到這一點,而且它足夠便宜,如果這是一個騙局,沒有什麼大不了的。
該應用程序通過ConnectorJ執行一些簡單的標準MySQL調用,以及默認的開箱即用內存分配。坦率地說,雖然我沒有看到這些事情是如何相關的,因爲只要沒有重新加載,應用程序就可以正常工作。
再次感謝。再一次,我不敢相信這是多麼有用!
您可以發佈您正在使用的JVM內存設置嗎? – StevenWilkins 2009-12-02 18:10:13