Eliminating runtime server OutOfMemoryErrors on Solaris

When you are starting an IBM® Business Monitor server on a Solaris operating system, an out of memory error (java.lang.OutOfMemoryError: PermGen space) is reported and the server does not start successfully. You must update the value for the MaxPermSize Java virtual machine (JVM) parameter.

If the MaxPermSize value is not sufficient, you might see the following error in the SystemOut.log or First-Failure Data Capture (FFDC) log:
  • java.lang.OutOfMemoryError: PermGen space
To ensure that you have sufficient memory to start your server, deploy models, and perform other processes like sending and receiving events, you might need to update your server scripts to ensure that the MaxPermSize value is sufficient. Tests have shown that the following values are sufficient for the IBM Business Monitor server to start successfully:
  • Stand-alone server runtime: 384M
  • Deployment manager server runtime: 256M
  • Federated server runtime (under ND one cluster topology): 384M
Your system resources and requirements might require you to set different MaxPermSize values.

Procedure

Depending on your situation, do one of the following:
  • To increase the MaxPermSize value in the server.xml file of the created profile, complete the following steps:
    1. Go to profile_root/profile_name/config/cells/cell_name/nodes/node_name/servers/server_name/server.xml.
    2. Open the file and search for genericJvmArguments. Scroll down towards the end of the file and find the genericJvmArguments property in the jvmEntries attribute.
    3. Add -XX:MaxPermSize=384m as the last value for the genericJvmArguments parameter. For example:
      <jvmEntries xmi:id="...genericJvmArguments="${IBMSCMX} ${IBMGCPOLICY_GENCON} -XX:MaxPermSize=384m">
  • If the server can start successfully but later runs out of memory, increase the MaxPermSize using the administrative console.
    1. Log in to the administrative console.
    2. Click Servers > Server Types > WebSphere application servers > server name.
    3. Under Server Infrastructure, click Java and Process Management > Process Definitions > Additional Properties > Java Virtual Machine.
    4. In the Generic JVM arguments field, change the MaxPermSize value to -XX:MaxPermSize=numeric value, where numeric value is a quarter of the value entered for the maximum heap size. For example, if your maximum heap size is 3000 M, set MaxPermSize to 750 M. If your maximum heap size is less than 2048 M, set MaxPermSize to 256 MB.
      Important: If MaxPermSize does not exist in the Generic JVM arguments field, add it to the field but do not replace existing information in the field.
    5. Click OK to save your changes.
    6. Click Save to save your changes to the master configuration.
    7. Log out of the administrative console.
    8. Restart your server.