1

当我们在 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

4

1 回答 1

0

您正在使用 64 位设置,但您无法完全使用 64 位功能,这意味着您的内存使用不足。我发现了有趣的帖子:http ://www.java.net/node/704100

这个提示有帮助吗?如果您对此链接有一些新想法,请勾选我的答案:)

于 2011-03-18T15:45:24.583 回答