Je suis nouveau sur weblogic . Après avoir démarré le serveur quand je vois la console de l'administrateur et que je me connecte, il jette une exception ci-dessous.
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
J'ai fait beaucoup de google et trouvé une solution pour initialiser Java_OPTIONS
comme -XX:xmx
et etc . J'ai essayé de définir cela dans le fichier startdomainenv.cmd
mais sans succès.
S'il vous plaît aider . Tous les pointeurs seront très appréciés.
Merci.
Pour définir PermGen size, vous pouvez utiliser par exemple -XX:PermSize=512m -XX:MaxPermSize=512m
.
Concernant Weblogic , définissez Java_OPTIONS et voyez si ces options sont correctement transmises en tant que paramètres à votre processus Java. Vous pouvez également définir directement ces paramètres dans le script startWeblogic.cmd
.
Pour vérifier que vos Java_OPTIONS
sont correctement définis, ajoutez echo %Java_OPTIONS%
dans le script startWeblogic.cmd
et consultez le résultat. En outre, vous pouvez utiliser par exemple jConsole , jstat ou jmap pour surveiller l'utilisation du processus Weblogic par le tas lors de l'exécution. Cela vous montrera la taille et l’occupation du PermGen .
Vous pouvez essayer en modifiant les paramètres de mémoire de weblogic sur votre serveur. * Allez à - <weblogic path>\Middleware\user_projects\domains\fms_domain\bin\setDomainEnv.cmd
* Ouvrez le fichier * Modifiez les paramètres
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
)
Modifiez ces paramètres selon vos besoins et votre environnement.
pour compléter la réponse de user267, vous devez également modifier: set MEM_MAX_PERM_SIZE_64BIT = -XX: MaxPermSize = 256m
set MEM_MAX_PERM_SIZE_32BIT = -XX: MaxPermSize = 256m
Dans mon cas, la solution consistait à éditer le fichier DOMAIN\bin\setDomainEnv.cmd
. Les modifications suivantes ont été apportées avant que le serveur ne démarre comme prévu:
-Xms
et -Xmx
ont été augmentées-XX:PermSize
et -XX:MaxPermSize
ont également été augmentéeset enfin, mais probablement le plus important
if "%Java_VENDOR%"=="Sun" (
ont été remplacées par if "%Java_VENDOR%"=="Oracle" (
afin de reconnaître correctement ma machine virtuelle Java.Avant cette dernière modification, les modifications de la mémoire n'étaient que partiellement reflétées dans la JVM initialisée, ce qui signifiait que les paramètres concernant l'espace PermGen étaient simplement ignorés.
Je veux juste partager ce qui a résolu le problème pour moi: Je me suis procuré setDomainEnv.sh et echo $ {Java_OPTIONS} et j'ai remarqué que les arguments MEM n'étaient pas là.
J'ai donc ajouté MEM_ARGS à la dernière configuration de Java_OPTIONS.
Ainsi:
Java_OPTIONS = "$ {Java_OPTIONS} $ {MEM_ARGS}" Export Java_OPTIONS
À votre santé