5

Я новичок в GlassFish и серверах приложений в целом. У меня есть экземпляр Amazon EC2 под управлением Ubuntu и установил GlassFish 4. Он запускается без проблем, но через некоторое время сервер GlassFish просто отключает сам по себе. Я просмотрел server.log, но все кажется нормальным, и нет записей, описывающих какие-либо сбои или закрытых. Любой ввод того, что может быть причиной, или где я должен искать, чтобы найти какие-либо подсказки?Сервер Glassfish 4 неожиданно останавливается

+0

Вы нашли решение для этого, я столкнулся с той же проблемой. на изображении Amazon EC2 linux. – KarimIhab

+0

@KarimIhab Извините, нет. Я боюсь, что на этом обучении. Я собираюсь продолжить работу над этим проектом, когда я получу время, надеюсь, во время этого отпуска (через пару недель). Но поскольку вы активно ищете решение прямо сейчас, не могли бы вы опубликовать ответ или ссылку в комментариях здесь, если вы что-нибудь узнаете? Благодарю. – Sti

ответ

4

Я столкнулся с такой же ситуацией. Я подозревал, что причина в том, что JVM закончила RAM, так как у бесплатного экземпляра EC2 есть ниггера 600 МБ (cat /proc/meminfo для проверки). Для того, чтобы искать улики, я включил JVM регистрации для домена Glassfish для того, чтобы сделать это, я добавил следующие строки параметров виртуальной машины Java в <domain>/config/domain.xml:

<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'/> 

Я никогда не узнал, что они на самом деле имел в виду, но я отправляю их здесь в случае, если кто-то имеет тот же путь, как и я, и Googles для них.

Тогда, наконец, я посмотрел в /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 ГБ, см. How do you add swap to an EC2 instance?

Сервер, используемый для ежедневного сбоя, но с заменой на него не разбился за недели.

+0

Отлично, я проведу это решение на неделю или две и опубликую результаты здесь. @Hunternif – KarimIhab

Смежные вопросы