Class Data Sharing(CDS) with WebSphere on Solaris
By dkumar on Apr 18, 2007
J2SE 5.0 has introduced lot of new features and one of them happens to be CDS which is supposed to help application startup(obviously making it faster to start) and use less memory(reduce memory footprint). This was available J2SE 5.0 or JDK 1.5. But when enabling this feature with WebSphere Application Server(WAS) it used to fail for following reasons:
There was a hard set limitation on the JDK it was refusing to use this feature if there are more than 8 jar files in bootclasspath. The JDK which comes with WAS happened to have more than 8 classes and this wasn't usable.
IBM has released a WAS fixpack which addresses this issue. You can download this JDK fixpack from here and remember you need to apply just the SDK fixpack to get this feature working for you. But in case if you would like to fix other issues which has been fixed in WAS then its good idea to get the whole fixpack which can be downloaded from WAS V6.1 Fix Pack 7 for Solaris.
To enable your WAS installation to make use of this feature you need to have this JVM option added to you generic JVM argument:
Which can turned off by -Xshare:off or -Xshare:auto enable class data sharing whenever possible.
Another important thing to note here that this feature in JDK 1.5 has been made available to client VM only so you need to have "-client" option as well for genericJvmArguments. Because on ergonomics is going to start the server vm if it gets classified as server class machine.