2013-09-29 18 views
5

Tôi mới sử dụng GlassFish và cho các máy chủ ứng dụng nói chung. Tôi có một cá thể Amazon EC2 chạy Ubuntu và đã cài đặt GlassFish 4. Nó khởi động mà không có vấn đề gì, nhưng sau một thời gian, máy chủ GlassFish chỉ tắt tất cả. Tôi đã xem qua server.log, nhưng tất cả mọi thứ có vẻ bình thường, và không có mục nào mô tả bất kỳ lỗi nào hoặc tắt. Bất kỳ đầu vào nào có thể là nguyên nhân, hoặc nơi tôi nên tìm để tìm bất kỳ manh mối nào?Glassfish 4 server dừng đột ngột

+0

bạn có tìm thấy bất kỳ giải pháp nào cho vấn đề này không, tôi đang đối mặt với cùng một vấn đề. trên hình ảnh linux amazon EC2. – KarimIhab

+0

@KarimIhab Xin lỗi, không. Tôi sợ các nghiên cứu đã cản trở. Tôi sẽ tiếp tục làm việc trong dự án này khi tôi có thời gian, hy vọng trong kỳ nghỉ này (trong một vài tuần). Nhưng kể từ khi bạn đang tích cực tìm kiếm một giải pháp ngay bây giờ, bạn sẽ nhớ đăng một câu trả lời hoặc một liên kết trong các ý kiến ​​ở đây nếu bạn tìm thấy bất cứ điều gì? Cảm ơn. – Sti

Trả lời

4

Tôi đang đối mặt với tình huống tương tự. Tôi nghi ngờ lý do là JVM hết RAM, vì phiên bản EC2 miễn phí có kích thước 600 MB (cat /proc/meminfo để xác minh). Để tìm kiếm manh mối Tôi bật JVM đăng nhập cho tên miền Glassfish, để làm như vậy tôi đã thêm các dòng sau vào thông số JVM trong <domain>/config/domain.xml:

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

Sau này khi Glassfish đóng cửa, các jvm.log chứa rất nhiều thông điệp như sau đây:

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

Tôi chưa bao giờ biết ý nghĩa của chúng, nhưng tôi đăng chúng ở đây trong trường hợp ai đó đi cùng con đường với tôi và googles cho chúng.

Sau đó, cuối cùng tôi đã xem trong /var/log/syslog (cái tôi thấy thực sự có tên là syslog.1), và thì đấy! Tôi đã xác nhận rằng quá trình JVM hết bộ nhớ và đã bị giết:

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 

Dường như với tôi rằng không gian trao đổi tăng sẽ khắc phục được sự cố. Hóa ra không gian hoán đổi EC2 là 0 theo mặc định, vì vậy tôi đã phân bổ 1 GB, xem How do you add swap to an EC2 instance?

Máy chủ được sử dụng gặp sự cố hàng ngày, nhưng trao đổi trên máy chủ không bị lỗi trong tuần.

+0

Tuyệt vời, tôi sẽ kiểm tra giải pháp này trong một hoặc hai tuần và đăng kết quả tại đây. @Hunternif – KarimIhab

Các vấn đề liên quan