This blog is part of the #SAPADMIN launch, an idea that was launched to have a space for system administrators on SCN. You can #SAPADMIN calling out to the SAP System Administrators. Martin English made a dummy concept page which you can check out. Also check blogs for hash tag #SAPADMIN and check twitter for tweets that are tagged with #SAPADMIN. You can find the idea on idea place here.
Recently I got involved in the customer pilot program to test SAPJVM 4.1. Therefore I thought it was nice to share some thoughts and knowledge on SAPJVM in general and on how things are going with the customer pilot program.
SAPJVM vs Platform JVM
Java virtual machine
A Java Virtual Machine can be seen as the environment in which you execute Java applications. It is used to translate source code to byte code. The reason why it is around is because this enables you to have a uniform platform for which you can write applications. You don’t have to worry about the application working on platform X and perhaps not on platform Y since the coding is translated by the java virtual machine it will work fine on both.
SAPJVM is a Java Virtual Machine (JVM) that is built by SAP and which is based on the Sun HotSpot JVM. In the past and still in the present Platform JVM’s are used for SAP Netweaver 6.40 and 7.0x SAP systems. Platform JVM refers to the JVM that is delivered by the platform vendor (IBM, HP …) on which you run your SAP system. For example on an IBM AIX server you will be using an IBM AIX specific JVM. On a HP/UX server you will encounter another specific JVM. Each of them has its own set of parameters and each of them uses different methods to perform garbage collection.
SAPJVM 4, 5 and 6
SAPJVM has several versions available already, SAP Netweaver 7.1 products use SAPJVM 5 and SAP Netweaver 7.2 and 7.3 products are using SAPJVM 6.
The SAPJVM’s are synchronized in terms of the engine. It’s the available Java classes on top of the SAPJVM where there is a difference. This means you will see the same technical parameter settings for SAPJVM 4 as for SAPJVM 5 as for the others.
The platform JVM had some pain points since it was not owned by SAP, the patching took longer as a customer had to report to SAP, SAP had to report to the platform JVM vendor and this is a time consuming process. SAP will release patches much faster and when a specific problem is detected at customer side which requires a fix in the SAPJVM it will be done immediately, outside of the normal periodic release schedule. Another reason is to align the technical settings and have the same settings available on all of the hardware platforms.
The reason why SAPJVM 4.1 is being built and SAPJVM 5 or higher is not used is because of too much incompatibility with the SAP Netweaver 6.40 and 7.0x platform.
SAPJVM comes with a set of tools developed by SAP which give more features to especially developers and some features are interesting for system administrators.
SAPVJM Monitoring Tool
One of the most interesting tools for a system administrator is the jvmmon which comes in two flavors: command line flavor JVMMON or GUI flavor JVMMON-GUI. I prefer the GUI flavor since it’s quicker to navigate around and easier check the results. You can find the tools in the SAPJVM directory on the host where your SAP system is running.
The SAP JVM Monitoring Tool (JVMMON-GUI) has a VM list where you select the VM (which is in fact a Java node) you wish to check.
On the right pane you can find information regarding the VM you selected. Under the tab VM Info you can find information on the version that is used, where the binaries are located, which parameters have been set at startup etc.
On the Memory tab you can see the amount of configured Java Heap, the Class Pool size and the Code Cache size.
One of the most interesting tabs for the administrator is the Performance tab. Here you can have a quick look at the number of GCs (Garbage Collections) and the number of Full GCs. A general key performance indicator is around 4 or 5 Full GCs maximum a day. In screenshot 1.4 you can see no Full GC occurred so far which is of course good for the performance of the SAP system. You can also see the relatively low CPU Time so I can derive from this data that this SAP system is not heavily used.
Other interesting options for administrators are displayed in the Print menu (see picture 1.5). The Dump menu looks a lot like the print menu. The difference is the print menu will show the output within JVMMON (lower pane) and the dump option will write the data to the file system. One of the most interesting ones here is the Print garbage collection history. This will give a detailed view on which types of garbage collections occurred, how long they took, how much memory was cleaned and so on.
SAP JVM Monitoring Daemon
There is also a daemon available (process JVMMOND) which can be used to connect to the tools from a front-end device for example but it is not recommended to use this in productive environments as without further actions it creates a security risk since the daemon opens a port on the server. SAP is currently working on the security gap and in future releases a different method using proper authentication will be available to connect to the tools.
SAP JVM Profiler
Another tool that is available is the SAP JVM Profiler which can be used to do profiling (analyze) of the SAP JVM at runtime. You can do Performance HotSpot Analysis, Allocation Analysis, and Method Parameter Analysis and so on. You can find more information in the SDN Wiki.
Since the profiler requires the daemon to run and since the daemon has a security gap it’s not recommended to run in a productive SAP systems which almost directly eliminates the use of the tool by a SAP system administrator.
In general the tools offer some benefits for SAP system administrators but they are mainly focused on development. The tools do not eliminate the need for Wily Introscope to have a more global view on how the J2EE engine is running and the detailed information necessary to perform root cause analysis. In my opinion they should centralize access to these tools by integrating them into SAP Solution Manager. Tools that can provide more detailed information than other tools that are already available through the Root Cause Analysis scenario should be part of the scenario.
At the moment information is spread on many different levels. You can use SAP Management Console, you can use JVMMON, you can use Wily Introscope, you can use the Netweaver Administrator, you can use Root Cause Analysis in Solution Manager and so on. If each separate tool would have its own specific use it would make sense but now you can find the same information in many different tools.
Customer pilot program experience
This is actually the first time I participate in a customer pilot program. I launched the idea at work and it was well received by my team lead. You can read more on creating time and asking your boss for time in Learning, choosing, believing and starting.
Of course I had to do the necessary explanation why it is important to participate in the customer pilot program. After my team lead jumped on board, I had to give a presentation to the steering board to make my point which was also well received.
There is a lot of business critical functionality at my customer that runs on Java based SAP system such as the Enterprise Portal. Since we will have to switch from Platform JDK to SAPJVM 4.1 for the applications residing on SAP Netweaver 6.40 and SAP Netweaver 7.0x participating in the customer pilot program can give us a head start.
A head start
- A head start to have knowledge on this technology since we also perform hosting for other customers
- A head start to influence the product and provide SAP with genuine feedback
- A head start to perform performance stress tests and see the influence of the change on the performance of business critical functionality
- An opportunity to get connected to the persons who create the product
Feedback is well received
I have already given feedback during the initial conversion from Platform JDK to SAPJVM 4.1 on my proof of concept SAP system. The feedback was well received and changes were made. I cannot go into much detail at this point since it’s not allowed. I can say that the SAP development team is doing a great effort to take into account the customer feedback which is nice to see and which is what SAP wants to achieve with their recently announced new vision to have more and better interaction with the customer.
For me it has already been a great experience so far and I hope I will be able to participate in more customer pilot programs in the future.