Show TOC

Background documentationProvided Tools Locate this document in the navigation structure

 

The SAP JVM delivery comes with the tools known from Sun’s JDK, with the exception of the client oriented web-tools (Java Web Start and the browser plugin) which are dispensable for server side applications.

The package is completed by some additional supportability tools and the SAP JVM profiler front-end.

Core and Supportability Tools

Besides the HotSpot VM, Sun’s JDK contains several core and supportability tools as presented in the following graphic.

Tools (Tools)

In essence, the Java launcher, the compiler, the debugger and some helper tools for remote communication are the core tools of the JDK. Starting from Java 5, Sun introduced several basic tools for monitoring and managing Java applications. For example, the Java Monitoring and Management Console (jconsole) provides information on performance and resource consumption of applications running on the Java platform using the Java Management Extension (JMX) technology.

In addition, a number of low-level tools like jps, jmap and jstack exist providing information about running VMs on a system, created class loaders, loaded classes, current thread status and overall heap usage per VM. All of these tools have in common that they are meant for small Java applications, not suitable for large application server environments. Therefore, the SAP JVM only provides restricted support for them. In particular, tools like jmap and jstack which use platform specific functionality are not ported to all SAP supported platforms.

For the SAP JVM support engineers a low-level monitoring tool called jvmmon is provided. The jvmmon comes in two flavors: a command-line and a GUI version. In addition to basic VM information like start-up parameters, heap consumption and debugging state, the tool provides functionality to start traces, to trigger garbage collections and to switch a VM into debugging mode. For more information, see Tools.

SAP JVM Profiler

The SAP JVM comes with its own profiling solution which especially helps developers find performance bottlenecks and reduce the memory footprint. The profiler consists of a back end and a front-end component.

The back end is integrated into the VM layer and provides low level profiling information over a socket connection or in a file. This information is aggregated and prepared for analysis on the front-end side by a GUI component, the so-called SAP JVM Profiler. The SAP JVM Profiler is built on top of the Eclipse framework and thus can be easily integrated into any Eclipse based environment like the SAP NetWeaver Developer Studio. Currently, the SAP JVM Profiler (front-end) is only supported on Windows platforms (which of course can be used to perform profiling of a Java application running on any platform supported by the SAP JVM).

The advantages of this solution are:

  • Profiling-on-Demand

    The SAP JVM can be switched into profiling mode and vice versa at any point in time without restarting the VM or the application server. In addition, no special VM startup parameters are necessary. The profiling-on-demand feature has no impact on the performance if profiling is switched off.

  • Profiling and debugging in parallel

    If the SAP JVM is switched into profiling mode, the usual debugging functionality like suspending and resuming threads, inspecting variable states and enabling breakpoints is still supported. Thus profiling and debugging are not mutual exclusive operations.

  • Works reliably with large applications

    Special considerations with respect to memory and CPU consumption are taken into account to analyze very large application server scenarios.

  • Integrated with SAP NetWeaver Application Server Java

    When running in the AS Java environment, the profiling data is associated with semantic information (tags) provided by the application server. Currently profiling data can be associated with user, session, request and application names. This information can be used for data accounting (“how many resources are consumed by a specific user or application”) as well as for limiting the impact of the profiler (“start profiling only for a specific user”).