「java.lang.OutOfMemoryError: PermGen space」エラーへの対処 質問する

「java.lang.OutOfMemoryError: PermGen space」エラーへの対処 質問する

最近、Web アプリケーションで次のエラーが発生しました:

java.lang.OutOfMemoryError: PermGen スペース

これは、Tomcat 6 および JDK 1.6 で実行される典型的な Hibernate/JPA + IceFaces/JSF アプリケーションです。どうやら、アプリケーションを数回再デプロイした後にこれが発生する可能性があるようです。

原因は何ですか? また、回避するにはどうすればいいですか? どうすれば問題を解決できますか?

ベストアンサー1

解決策は、Tomcat の起動時に JVM コマンド ラインに次のフラグを追加することでした。

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

これを行うには、Tomcat サービスをシャットダウンし、Tomcat/bin ディレクトリに移動して tomcat6w.exe を実行します。「Java」タブで、「Java オプション」ボックスに引数を追加します。「OK」をクリックして、サービスを再起動します。

指定されたサービスがインストールされたサービスとして存在しないというエラーが発生した場合は、以下を実行する必要があります。

tomcat6w //ES//servicename

ここで、servicename はservices.msc に表示されるサーバーの名前です。

出典: orxのコメントエリックのアジャイル回答

おすすめ記事