Jvm

jboss4 java.lang.OutOfMemoryError:PermGenスペース(jboss 4.2.3.GA)



Jboss4 Java Lang Outofmemoryerror



jbossで例外が発生しました:

java.lang.OutOfMemoryError:PermGenスペース(jboss 4.2.3.GA)

インターネットで検索して、関連するコンテンツを入手してください。

PermGenスペースのフルネームはPermanentGeneration spaceで、これはメモリOutOfMemoryErrorの永続的なストレージ領域を指します:PermGenスペースは表面からのメモリの利点です、解決するメソッドはメモリも増やす必要があります。メモリの利点について説明します。この部分はクラスとメタ情報を格納するために使用されます。クラスは、ロード時にPermGenスペース領域に配置され、インスタンスが格納されるヒープ領域に配置されます。これとは異なり、GC(ガベージコレクション)はメインプログラムの実行時にPermGenスペースをクリーンアップしないため、アプリが大量のクラスをロードする場合は、PermGenスペースエラーが発生する可能性が非常に高くなります。このタイプのエラーは、WebサーバーがJSPをプリコンパイルするときによく発生します。



メソッドを修正するには、run.batに-Xms256m -Xmx512m -XX:MaxNewSize = 256m -XX:MaxPermSize = 256mを追加します。

プロジェクトでは多くのjarパッケージが参照されているため、これらのjar内のクラス情報は、JBossクラスローダーによってPermGenスペースにロードされます。 JVMのデフォルトの場合、スペースのこの部分。サイズはわずか4Mです。 jarパッケージが多い場合は、明らかに十分ではないため、-XX:MaxPermSize = 256mで最大値を指定することで問題を解決できます。

さらに、ヒープメモリが不足している場合(java.lang.OutOfMemoryError:Javaヒープスペース)、-Xmx512mで最大ヒープメモリを指定することで、この問題を解決できます。



最終的解決:

1.1。コマンドラインモードの場合、または直接クリックする場合 run.bat '走る JBoss その後、あなたはなります bin / run.bat ファイル内 JVM オプションが変更され、見つかりました セットするJAVA_OPTS =% JAVA_OPTS この段落、後で追加 -Xms256m -Xmx512m -XX:MaxNewSize = 256m -XX:MaxPermSize = 256m 。セーブ OK です。

run.batを変更します

if not '%JAVAC_JAR%' == '' set RUNJAR=%JAVAC_JAR%%RUNJAR% if '%JBOSS_CLASSPATH%' == '' set RUN_CLASSPATH=%RUNJAR% if '%RUN_CLASSPATH%' == '' set RUN_CLASSPATH=%JBOSS_CLASSPATH%%RUNJAR% set JBOSS_CLASSPATH=%RUN_CLASSPATH% rem Setup JBoss specific properties set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME% rem Add -server to the JVM options, if supported '%JAVA%' -server -version 2>&1 | findstr /I hotspot > nul if not errorlevel == 1 (set JAVA_OPTS=%JAVA_OPTS% -server) rem JVM memory allocation pool parameters. Modify as appropriate. set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=512m

二。 Eclipse で走っている Jboss 時間が長すぎると表示される場合があります java.lang.OutOfMemoryError PermGenスペース エラー、解決策:

1.1。 デバッグアイコンの横にある小さな矢印をクリックします


二。 クリック 「デバッグ構成…」 メニュー項目


3.3。 左側の「汎用サーバー」ツリーの下にある「」を選択します ローカルホストでのJBossv4.2 」;

四。 右側をクリックします 引数 「」 タブ タブ、 ' VM引数 加える:-Xms128m -Xmx512m -XX:PermSize = 64m -XX:MaxPermSize = 512m


-Djboss.home=E:'/server/jboss-4.2.3.GA' -Djava.library.path=C:'/Java/jdk1.5.0_22/bin' -Djava.endorsed.dirs=E:'/server/jboss-4.2.3.GA/lib/endorsed' -Xms128m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=512m