CA IdM Java Memory Sizing

2 Apr

Overview:  Does your CA IdM crash or fail to start with “java out of memory” errors, if so this article can help

There are several items to consider for CA IdM and the amount of memory required.  The following are items that you need to be aware of:

CA IdM Policy Express cache – imsapi6.jar \ ehcache.xml \ default cache

Java VM Max and Minimum heap – -Xmx and -Xms memory settings

VMWare memory reservation – Set the reservation to Java max memory usage plus host OS

There are large number of configuration items that affect these parameters and how to set them.  I will detail our configuration and problems that occurred and explain how our solution was determined.

Our Environment: 

VMWare OSX 4.1, MS Windows 2003 Enterprise R2, WebSphere 6.X, Java JDK 1.5.X, CA IdM 12.5.3

Description of problem:  Operational for 8 months with no problems.  Development of new policy express changes.  Testing in test environment did not reveal any memory issues.   The WebSphere environment had no set Max or Minimum memory setting set.  When this was set to a Max of 1600 and a minimum of 256 in the test environment there were no problems.  When this was applied in Production the application would not start.  Thus, it was left at the default “no setting”.  When the new policy express policies were added, initially there were no problems.  Within a day the server WebSphere application server would report java.out.of.memory errors.  The application would remain up for a period of hours and fail, this began to occur more frequently as time passed.

Solution:  WebSphere default memory setting of “none”  actually result in the application starting with -Xms50 -Xmx256 which is not enough for CA Idm to start, WebSphere will than (eventually) restart CA IdM with -Xms256 -Xmx640.  This would allow CA IdM to start and work for a period of time, but eventually run out of memory from the high amount of policy cache items.  By modifying two items; ehcache.xml file within imsapi6.jar and modifying the  default cache parameter from 10K to 5K and setting the WebSphere java virtual machine settings to -Xms640 -Xmx1024.  With these settings I avoided memory failures.  The Verbose GC was set and CA IdM Java ran at ~560M of memory with these settings.  To reach an optimum setting of -Xms256 and -Xmx1600 it was necessary to set the VMWare memory reservation to 2.2Gb (1.6Gb for Java and .6Mb for Windows) there were no longer issues with setting the -Xmx1600 in WebSphere and the server starting and remaining operational with the original 10K ehcache setting


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: