SAP JVM is the SAP’s certified Java Virtual Machine (JVM) and JDK. It is based on the Hotspot VM from Sun, but it has been enhanced. So most of the Sun’s JVM parameters and options are supported by SAP JVM, and also the garbage collector output is similar. There are several benefits on using the SAP JVM, but maybe the most interesting are the independency of other JVM vendors (which may be a problem when the maintenance period of the JDK and the SAP product is not the same), the fact that it works equally in all the platforms and the different enhancements provided by SAP.
Currently, the available versions are:
|As Java 6.40||SAP JVM 4 (via switch)|
|As Java 7.00||SAP JVM 4 (via switch)|
|As Java 7.0 EHP3||SAP JVM 4|
|As Java 7.10||SAP JVM 5|
|As Java 7.20||SAP JVM 6|
|As Java 7.30||SAP JVM 6|
From NW 7.1, the only supported JDK is the SAP one, which is shipped as part of the NW products. This means that other JDKs cannot be used for Netweaver as of 7.10. SAPJVM is mandatory. For NW04 and NW 7.0, third party JDKs can be used, and the usage of SAP JVM is possible via “switch” (we will discuss it later).
The output of the Garbage Collector looks like the output for Sun’s JVM, so the information contained in that How to read the Garbage Collector output (for Sun JVM) may be useful to understand it.
As an example, we can see here the output of a SAP JVM 5 with -verbose:gc option:
An interesting option is -XtraceGCStatisticLevel[1-6], which provides us with the GC statistics. This is a complete summary of the activities of each GC. -XtraceGCStatisticLevel1 would provide basic information, and, in a progresive way, -XtraceGCStatisticLevel6 would provide the complete set of data.
As we can see in the following example, it shows quite detailed information regarding the GC, for example, it shows if it is full or partial, the algorithm which is being used, the reason why the garbage collector took place and so on. In the extract (the full GC statistic output is quite big!) you can see a FullGC which occurred due to allocation failure. It also shows that 2168 full GCs have occurred since the restart of the system and that the duration of the GC was of 62585,69ms, among other data.
For NW04s and 7.00, SAP has introduced the SAP JVM 4. As of Netweaver 7.0 EHP3, the SAP JVM is the default JDK, but before that, it is necessary to install the JDK of another vendor (HP, Sun or IBM) and then switch to SAP JVM 4.
The switch tool is only used to move from JDK 1.4.2 to SAP JVM 4, but it is quite interesting, as it directly translates the java parameters, updates the instance profile and the user environment and also assists with the Wily Introscope configuration. The tool looks like the sapinst tool.
Some useful notes on this: