Kbase P176498: Web Services Adapter on Tomcat terminates with Java PermGen Space error
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  11/1/2010 |
|
Status: Unverified
SYMPTOM(s):
Web Services Adapter on Tomcat terminates with Java PermGen Space error
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
FACT(s) (Environment):
All Supported Operating Systems
OpenEdge 10.x
OpenEdge Web Category: WebServices
CAUSE:
One of the memory pools for the Java VM is configured by default with a value that is too small for production environment.
FIX:
Increase the memory available to the Java VM for the PermGen space as follows:
-XX:MaxPermSize=96m , by setting this option we are increasing Permanent
Generation space from 64mb which is default to 96mb. This gives more space to hold class objects and method objects. Google searches indicate that some people find a value of 128m to 256m works better. This is something you will need to play with.
-XX:NewRatio=2, by setting this option we are basically allocating young generation to use one third of the heap. This will allow more space for young generation to grow before running garbage collection, hence reducing the pause time on garbage collections and increasing performance.
To implement these changes do the following:
Go to Apache Tomcat properties -> select Java tab -> Add each of these arguments to Java Options in a new line and apply.
-XX:MaxPermSize=96m
-XX:NewRatio=2