Glassfish 4服务器意外停止

我是GlassFish的新手,并且是一般的应用程序服务器。 我有一个运行Ubuntu的Amazon EC2实例,并安装了GlassFish 4.它启动时没有问题,但一段时间后,GlassFish服务器自行closures。 我已经通过server.log查看,但一切似乎正常,没有条目描述任何失败或closures。 任何可能的原因或我应该寻找什么线索的投入?

我面临着完全相同的情况。 我怀疑是因为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实际上名为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,请参阅如何将交换添加到EC2实例?

服务器曾经每天都会崩溃,但是交换的时间并没有在几周内崩溃。