2013-09-29 30 views
5

GlassFish'e ve genel olarak uygulama sunucularına yeniyim. Ubuntu'yu çalıştıran ve GlassFish 4'ü yüklediğim bir Amazon EC2 örneğim var. Sorun yaşamadan başlıyor ancak bir süre sonra GlassFish sunucusu her şeyi kendi kendine kapatıyor. Server.log'u inceledim ama her şey normal görünüyor ve herhangi bir arıza veya kapanışı tanımlayan giriş yok. Nedenin ne olabileceği veya herhangi bir ipucu bulmak için nereye bakmam gerektiği üzerine herhangi bir girdi var mı?Glassfish 4 sunucusu beklenmedik bir şekilde durur

+0

bunun için herhangi bir çözüm buldunuz, aynı sorunla karşı karşıyayım. amazon EC2 linux görüntüsünde. – KarimIhab

+0

@KarimIhab Üzgünüm, no. Korkarım çalışmalar yoldan geldi. Zaman geçirdiğimde bu projede çalışmaya devam edeceğim, umarım bu tatilde (birkaç hafta içinde). Ancak, şu anda aktif bir çözüm aradığınız için, bir şey bulursanız yorumlara bir cevap veya bağlantı göndermenizi ister misiniz? Teşekkürler. – Sti

cevap

4

Aynı durumla karşı karşıyayım. Nedeni, JVM'nin RAM'in tükendiğinden şüphelendim çünkü ücretsiz EC2 örneğinde 600 MB'lik bir niggard var (doğrulamak için cat /proc/meminfo). Bunu yapmak için, ben Glassfish etki alanı için oturum JVM açık ipuçları aramak için ben <domain>/config/domain.xml JVM parametreleri aşağıdaki satırları ekledi: GlassFish kapattığınızda

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

Daha sonra jvm.log gibi çok sayıda mesaj içeriyordu aşağıdaki:

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

Ben onlar gerçekten ne anlama geldiğini öğrendim asla ama durumda birisi onları burada post ediyorum benimle aynı yolu alır ve onlar için googles.

Sonunda /var/log/syslog'a baktım (bulduğum aslında syslog.1 olarak adlandırıldı) ve voila! Ben JVM süreci bellek kalmadı onay aldım ve öldürüldü:

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 

takas alanı artan sorunu çözmek gerekir geliyor bana. EC2 takas alanı varsayılan olarak 0'dır, bu yüzden 1 GB ayırdım, bkz. How do you add swap to an EC2 instance?

Sunucu, günlük olarak çökmek için kullanılır, ancak takasla haftalarca çökmemiştir.

+0

Harika, Bu çözümü bir iki hafta boyunca test edip sonuçları burada paylaşırım. @Hunternif – KarimIhab

İlgili konular