The SAP JVM is a fully certified Java Standard Edition Virtual Machine for Java 1.4, 5, 6, 7 and 8. It is derived from Oracle’s HotSpot VM and JDK implementation, but enhanced with several supportability features like the SAP JVM Profiler. It provides and optimized way of monitoring and profiling the SAP Java Application server. Customer support is provided directly by SAP for the full maintenance period of SAP applications utilizing the SAP JVM.
The SAP JVM is a standard compliant, certified JDK, supplemented by additional supportability and developer features and extensive monitoring and tracing information. All these features are designed as interactive, on-demand facilities of the Java VM with minimal performance impact. They can be switched on and off without having to restart the VM (or the application server utilizing the VM).
Supportability & Developer Features
Debugging on Demand
With SAP JVM’s debugging on demand, Java developers can turn on (and off) Java debugging directly -- there is no need to start the SAP JVM (or the application server on top of it) in a special mode. Java debugging in the SAP JVM can be switched on and off with the so-called jvmmon tool which is part of the SAP JVM delivery. This feature does not lower performance if debugging is turned off. The SAP JVM JDK is delivered with full source code providing debugging information, making Java debugging even more convenient.
Profiling on Demand
In order to enable Java developers to optimize their applications with respect to resource consumption like CPU utilization or memory footprint, the SAP JVM comes with the SAP JVM Profiler (latest release: 2.2), a full-fledged Java Profiler that allows on-demand profiling of large-scale systems running on the SAP JVM.
The SAP JVM Profiler's graphical user interface can be easily integrated into any Eclipse-based environment by installing the provided Eclipse plug-in. This plug-in adds a new perspective to your Eclipse workbench similar to the Debug or Java perspective. The VM Explorer View within the profiler perspective makes it easy to discover all running SAP JVM instances, let it be local or remote. Being attached to a dedicated SAP JVM, the profiler offers different kinds of profiling traces that make the JVM collect specific profiling data when activated. The resulting profiling data is collected and stored into so-called snapshots that allow you to perform detailed statistical and graphical (offline or online) analysis.
The profiling traces addressing the following use cases:
- Memory Allocation Analysis -- Investigates the memory consumptions of your Java application and finds allocation hotspots
- Performance Analysis -- Investigates the runtime performance of your application and finds expensive Java methods
- Network I/O Analysis -- Analyzes the network traffic
- File I/O Analysis -- Provides information about file operations
- Synchronization Analysis -- Detects synchronization issues within your application
- Method Parameter Analysis -- Yields detailed information about individual method calls including parameter values and invocation counts
- Garbage Collection Analysis – Retrieve detailed information about processed GCs in the JVM as well as their effect on the Java Heap
- Heap Dump Analysis -- Triggers a heap dump which you can inspect conveniently with the integrated Memory Analyzer
- Class Statistic Analysis -- Creates a snapshot of the current state of all Java Heap generations
- Profiling Lifecycle Information -- A lightweight monitoring trace for memory consumption, CPU load and GC events.
- Thread Dump Analysis – Investigates what is going on in an application using an automated report
Extensive Monitoring and Tracing Information
The SAP JVM SDK provides an API to retrieve comprehensive statistics about threads, memory consumptions, garbage collections and I/O activities. In order to monitor a SAP JVM instance, several traces may be activated on demand. They provide in-depth insight into the integral parts of the VM like class loading, garbage collection or I/O. You may switch on or off the offered traces with the so-called jvmmon tool which is part of the SAP JVM delivery.
Extended Information to track down Errors
Critical Java exceptions (such as NullPointerException, ClassCastException, NoClassDefFoundError or OutOfMemoryError) are featured with additional hints which make it much easier to detect the reason for the exception.
Thread dumps not only contain a Java execution stack trace, but also information about locked objects, consumed CPU & memory resources, I/O activities and socket communication.