Проблема с пространственным пространством perm gen в weblogic

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

Root cause of ServletException.
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:335)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:288)
Truncated. see log file for complete stacktrace

Я много сделал google и нашел некоторое решение для инициализации JAVA_OPTIONS как -XX:xmx и т.д. Я попытался установить это в файле startdomainenv.cmd, но не повезло.

Пожалуйста, помогите. Любые указатели будут высоко оценены.

Спасибо.

Ответ 1

Чтобы установить размер PermGen, вы можете использовать, например. -XX:PermSize=512m -XX:MaxPermSize=512m.

Что касается Weblogic, установите JAVA_OPTIONS и проверьте, правильно ли они были переданы в качестве параметров в ваш Java-процесс. Вы также можете напрямую установить эти параметры в startWeblogic.cmd script.

Чтобы проверить правильность установки JAVA_OPTIONS, добавьте echo %JAVA_OPTIONS% в startWeblogic.cmd script и посмотрите результат. Кроме того, вы можете использовать, например, jConsole, jstat или jmap, чтобы отслеживать использование кучи процесса Weblogic во время выполнения. Это покажет вам размеры и занятие PermGen.

Ответ 2

Вы можете попробовать, изменив настройки памяти веб-журнала на своем сервере. * Идти к - <weblogic path>\Middleware\user_projects\domains\fms_domain\bin\setDomainEnv.cmd * Открыть файл * Измените настройки

if "%JAVA_VENDOR%"=="Sun" (
set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m
set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m
) else (
set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m
set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m
)

Измените эти настройки в соответствии с требованиями и условиями.

Ответ 3

чтобы выполнить ответ пользователя267, вы также должны изменить: set MEM_MAX_PERM_SIZE_64BIT = -XX: MaxPermSize = 256m

установить MEM_MAX_PERM_SIZE_32BIT = -XX: MaxPermSize = 256 м

Ответ 4

В моем случае решением было отредактировать файл DOMAIN\bin\setDomainEnv.cmd. Следующие изменения были сделаны до того, как сервер запустится так, как предполагалось:

  • Значения -Xms и -Xmx были увеличены.
  • также были увеличены значения -XX:PermSize и -XX:MaxPermSize

и, наконец, но, вероятно, самое главное

  • условия if "%JAVA_VENDOR%"=="Sun" ( были изменены на if "%JAVA_VENDOR%"=="Oracle" (, чтобы правильно распознать мою JVM.

До этой последней модификации изменения памяти частично отражались только на инициализированной JVM, и это означало, что параметры, относящиеся к пространству PermGen, просто игнорировались.

Ответ 5

Я просто хочу поделиться тем, что решило проблему для меня: Я получил setDomainEnv.sh и echo ${JAVA_OPTIONS} и заметил, что аргументов MEM не было.

Итак, я добавил MEM_ARGS к последней настройке JAVA_OPTIONS.

Так вот:
JAVA_OPTIONS = "$ {JAVA_OPTIONS} ${MEM_ARGS}" экспорт JAVA_OPTIONS

Приветствия