我曾经使用Tomcat,因为我曾经用来清理临时文件夹n等以避免OutOfMemoryError
。最近我开始使用Glassfish,所以我想知道在重新部署应用程序之前需要删除所有文件夹数据?
在我的Glassfish域中,只有一个域domain1。并且有两个节点,其中部署了不同的应用程序。我的服务器是在vagrant构建的linux虚拟机上。
答案 0 :(得分:0)
我想您要问的是以下内容:
如果我多次将应用程序重新部署到Glassfish,就会产生这种情况 有时在OutOfMemoryError中。我需要哪些文件/文件夹 重新部署前删除以避免错误?
删除文件或文件夹在这里没有帮助,因为当没有足够的RAM用于JVM时会导致OutOfMemoryError
。要修复它,您必须在重新部署之前重新启动服务器。
每次重新部署应用程序时,Glassfish都应卸载以前应用程序版本的所有旧类,并从新版本的应用程序加载新类。但经常发生的是,有一些旧的Java类实例引用无法卸载,因此加载新类需要更多的RAM。经过多次重新部署之后,对旧类的引用太多了,没有足够的RAM用于新类,并且抛出了OutOfMemoryError
。
我无法找到解决此问题的方法,您可以通过-Xmx
参数增加JVM的可用RAM,但这只会在额外内存也完全填满之前有所帮助。如上所述,在重新部署之前重新启动服务器可以解决问题,但当然这不是一个真正的解决方案。