Glassfish 4 服务器意外停止

Posted

技术标签:

【中文标题】Glassfish 4 服务器意外停止【英文标题】:Glassfish 4 server stops unexpectedly 【发布时间】:2013-10-05 11:22:38 【问题描述】:

我是 GlassFish 和一般应用服务器的新手。我有一个运行 Ubuntu 的 Amazon EC2 实例并安装了 GlassFish 4。它启动时没有问题,但一段时间后 GlassFish 服务器会自行关闭。我查看了 server.log,但一切似乎正常,并且没有描述任何故障或关闭的条目。关于可能是什么原因的任何意见,或者我应该在哪里寻找任何线索?

【问题讨论】:

你有没有找到任何解决方案,我面临着完全相同的问题。在亚马逊 EC2 linux 映像上。 @KarimIhab 对不起,不。恐怕学业会碍事。当我有时间时,我将继续从事这个项目,希望在这个假期(几周后)。但是,由于您现在正在积极寻找解决方案,如果您发现任何问题,您介意在此处的 cmets 中发布答案或链接吗?谢谢。 【参考方案1】:

我面临着完全相同的情况。我怀疑原因是 JVM 内存不足,因为免费的 EC2 实例有 600 MB(cat /proc/meminfo 来验证)。为了寻找线索,我为 Glassfish 域打开了 JVM 日志记录,为此我在<domain>/config/domain.xml 的 JVM 参数中添加了以下几行:

<jvm-options>-XX:LogFile=$com.sun.aas.instanceRoot/logs/jvm.log</jvm-options>
<jvm-options>-XX:+LogVMOutput</jvm-options>

后来当 Glassfish 关闭时,jvm.log 包含大量消息,如下所示:

<dependency_failed type='unique_concrete_method' ctxk='java/util/ArrayList' x='java/util/ArrayList iterator ()Ljava/util/Iterator;' witness='javax/faces/component/UIComponentBase$ChildrenList' stamp='13211.267'/>
<dependency_failed type='unique_concrete_method' ctxk='java/util/ArrayList' x='java/util/ArrayList iterator ()Ljava/util/Iterator;' witness='javax/faces/component/UIComponentBase$ChildrenList' stamp='13211.267'/>
<dependency_failed type='unique_concrete_method' ctxk='java/util/ArrayList' x='java/util/ArrayList iterator ()Ljava/util/Iterator;' witness='javax/faces/component/UIComponentBase$ChildrenList' stamp='13211.267'/>

我从来没有发现它们的真正含义,但我将它们发布在这里以防有人与我走同样的路并为他们搜索。

最后我查看了/var/log/syslog(我发现的那个实际上名为syslog.1),瞧!我得到了JVM进程内存不足并被杀死的确认:

Dec 20 07:44:44 ip-172-31-33-222 kernel: [1518108.211801] Out of memory: Kill process 22248 (java) score 743 or sacrifice child
Dec 20 07:44:44 ip-172-31-33-222 kernel: [1518108.211833] Killed process 22248 (java) total-vm:1622220kB, anon-rss:447752kB, file-rss:0kB

在我看来,增加交换空间应该可以解决问题。原来EC2交换空间默认为0,所以我分配了1 GB,见How do you add swap to an EC2 instance?

该服务器过去每天都会崩溃,但在启用了交换后,它已经有几周没有崩溃了。

【讨论】:

太好了,我将测试这个解决方案一两个星期,然后在这里发布结果。 @Hunternif

以上是关于Glassfish 4 服务器意外停止的主要内容,如果未能解决你的问题,请参考以下文章

Java Glassfish Spring Sockjs失败:WebSocket握手期间出错:意外的响应代码:500

Glassfish RAR5035:从池中销毁资源时出现意外异常

在 GlassFish 3 Application Server 中配置 MySQL 数据源

Glassfish 3.1.1突然停止写入server.log

如何在 Glassfish 中允许该权限

mysql-处理Slave意外停止