Having errors 500 or 503 while connecting and browsing Clarity application, when checking the logs we can see the following error message on any action:
ERROR 2013-05-17 08:35:00,639 [http-8080-2] union.service
java.lang.OutOfMemoryError: PermGen space
The cause for this error is the fact that the PermGen memory was not enough for the current application usage. This can make the application running out of memory on certain portlets.
Please note that there is no specific user/action that is triggering this.
PermGen memory is used by the JVM to hold loaded classes. Java heap memory is used to hold dynamically allocated memory.
When a single user and action is responsible, then it is the heap memory that is impacted, a totally different error message is thrown(java.lang.OutOfMemoryError: Java heap space).
In this specific case (java.lang.OutOfMemoryError: PermGen ) the user or the users that were connected to the servers with this action are not relevant.
Increase the MaxPermSize JVM parameter in properties.xml file in $CLARITY_HOME/config or in NSA - Server - Application
The parameter will look like this, for example :
jvmParameters="-Xms6144m -Xmx6144m -XX: MaxPermSize =128m "
Please increase MaxPermSize to a higher binary number, i.e. 192, 256 etc. It will look like this:
jvmParameters="-Xms6144m -Xmx6144m -XX: MaxPermSize =192m "
Save, and restart all services.
This will resolve the issue, and the errors will no longer appear in UI.
Please note that the default amount will depend on the exact Clarity version. The default for Clarity 12.1 - 13.0 will be MaxPermSize =128 m, and starting from Clarity PPM 13.1, it will be MaxPermSize =256m. This information will be available in the corresponding Installation Guide for the exact version.