2016-01-06 7 views
0

Раньше я использовал Tomcat, и я использовал для очистки временную папку n и т. Д., Чтобы избежать OutOfMemoryError. Недавно я начал использовать Glassfish, чтобы я хотел знать, что все данные папок необходимо удалить перед повторным развертыванием вашего приложения?Очистка стеклянной рыбы во избежание неудачного развертывания

В моих доменах Glassfish существует только один домен, domain1. И есть два узла, в которых развертываются разные приложения. Мой сервер находится на виртуальной машине виртуальной виртуальной машины.

ответ

0

Я предполагаю, что вы спрашиваете, является следующее:

Если я перебросить заявку на GlassFish несколько раз, это приводит к в OutOfMemoryError иногда. Какие файлы/папки у меня есть до удалить перед повторным развертыванием, чтобы избежать ошибки?

Удаление файлов или папок здесь не поможет, так как OutOfMemoryError вызывается, когда для JVM не хватает ОЗУ. Чтобы исправить это, вам придется перезагрузить сервер перед повторным развертыванием.

Каждый раз, когда приложение перераспределяется, Glassfish должен выгружать все старые классы предыдущей версии приложения и загружать новые классы из новой версии приложения. Но часто бывает так, что есть некоторые старые ссылки на экземпляры Java-класса, которые нельзя выгружать, поэтому для загрузки новых классов требуется больше ОЗУ. После ряда перераспределений существует так много ссылок на старые классы, что для новых классов осталось достаточно ОЗУ, и вызывается OutOfMemoryError.

Не удалось найти способ исправить это, вы можете увеличить доступную ОЗУ для JVM с помощью параметра -Xmx, но это поможет, пока дополнительная память не будет полностью заполнена. Как описано выше, перезапуск сервера перед повторным развертыванием устраняет проблему, но, конечно, это не настоящее решение.

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