由于内存过多(-Xms -Xmx设置),在Glassfish 2.1.1中部署war文件的OutOfMemory错误

时间:2011-03-15 11:06:36

标签: java deployment glassfish asadmin

我们在Glassfish 2.1.1中部署war文件时出现错误(OutOfMemory)。这与domain.xml文件中的内存选项有关。

我们将-Xmx-Xms jvm-options设置增加到1024而不是默认值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 deploy --user admin --passwordfile <passwd-file> --host localhost --port 4848 <warfile>

我们在server.log中得到的错误:

  

[#| 2011-03-15T09:40:56.750 + 0100 |严重|太阳appserver2.1 | javax.enterprise.system.tools.deployment | _ThreadID = 15; _ThreadName =线程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 64位

1 个答案:

答案 0 :(得分:0)

您使用的是64位设置,但总体上无法使用64位功能,这意味着您的内存使用率不足。我发现有趣的帖子:http://www.java.net/node/704100

这个提示可以提供帮助吗?如果您通过此链接获得了一些新想法,请勾选我的答案:)