当我们在 Glassfish 2.1.1 中部署一个 war 文件时,我们得到一个错误 (OutOfMemory)。这与 domain.xml 文件中的内存选项有关。
我们将jvm-options 设置增加到 1024-Xmx
而-Xms
不是默认的 512,如下所示:
<jvm-options>-Xms=1024m</jvm-options>
<jvm-options>-Xmx=1024m</jvm-options>
<jvm-options>-XX:MaxPermSize=256m</jvm-options>
<jvm-options>-server</jvm-options>
<jvm-options>-D64</jvm-options>
我们使用的命令:
asadmin 部署 --user admin --passwordfile
<passwd-file>
--host localhost --port 4848<warfile>
我们在 server.log 中得到的错误:
[#|2011-03-15T09:40:56.750+0100|SEVERE|sun-appserver2.1|javax.enterprise.system.tools.deployment|_ThreadID=15;_ThreadName=Thread-40;_RequestID=16902980-9800-488e -82b5-0104cd18e57c;|J2EEC Phasejava.lang.OutOfMemoryError 发生异常:com.sun.enterprise.deployment.backend.IASDeploymentException:为模块加载部署描述符时出错...
当我们将 jvm-options 改回原来的值(512m)时,错误就解决了。任何线索为什么会发生这种情况?这些设置是否有最大值?
系统信息
Java 版本:Java HotSpot(TM) 服务器 VM (16.3-b01-jre1.6.0.07-rc1)
操作系统:HP-UX Itanium 64bit