Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
andreas_wegmann
Advisor
Advisor
659

How to create Java Heap Dump from SCC service for SUP 2.x

 

Purpose

This technical document explains how to create a java heap dump from a specific
service (Sybase Control Center - SCC) by JVisualVM for debugging purposes by development.

Additionally a Profile of the CPU usage can be created.

 

DESCRIPTION

To detect a memory leak issue for a specific service a
java heap dump can be generated using JVisualVM.

  

Required Software

1.     SUP 2.x.x or higher.

2.    JVisualVM (included in SUP)

   

Additional requirements

1.     Access to Sybase Control Center.

2.     Access to the JDK under the Sybase installation.

3.     JVisualVM can only attach to a running JVM using the same account.

        That is the reason the document suggests starting SCC from command prompt using scc.bat.

        By default, the SCC service runs under "Local System Account".

        If in SCC service has been configured to run using a specific user account, and the JVisualVM

        is also launched after login
        to the host using the same account, JVisualVM should be able to see and attach

        to the SCC service JVM process.

        Otherwise, another option is to temporarily configure SCC service to run with the same identity

        (choose Properties>Log on>This Account) as the account used for JVisualVM.  

Assumption

  • This document assumes you have a working SUP environment.
  • Have Administrator rights to the Operating System and Sybase Unwired Server.

  

Issue “High CPU utilization consuming more than 50% of CPU”

  • User needs to debug high CPU usage.

    

Step 1 Configure SCC startup

  • SCC service needs to be started from command line

 

Solution

  1. Stop the SCC service.

    

  2.     In command line console, cd "%SCC_HOME%\bin folder and set SCC_JAVA_HOME

          environment variable, then run scc.bat.

          It might be necessary to set the 64bit SCC_JAVA_HOME (JDK1.6.0_31-x64)

          instead of the 32bit (JDK1.6.0_31).

          

  3.            Start the JVisualVM from command line.

       

Step 2 Creating Java heap dump file

  • SCC process needs to be attached
  • “Memory” needs to be sampled
  • Capturing the Heap Dump

        

Solution

 

  1. Select the correct process to monitor (The com.sybase.ua.startup.Startup process).
  2. In the “Sampler” tab click “Memory” to sampling the memory.
  3. Perform a heap dump by first clicking on “Perform GC” and afterwards on “Heap Dump”.

    

    4.     The following screenshot shows where to find that .hprof file.

            This file should be send to the development team.

          

           

Step 3 Profile CPU usage

  • Creating CPU profiling image

    

Solution

 

  1. In the “Profiler” tab, click on the “CPU” button.
  2. Wait for more than 10 minutes or even more. Note that CPU profiling needs consuming long time.
  3. Click on the “Save Current View to Image” button.
  4. Send the image to the development team.

     

  

Summary

 

This document explained in details about the steps needed to set up the SCC process and JVisualVM 

and capture the Java Heap dump in the Sybase Unwired Server to show if there is any issues 

such as memory leak. This is a very valuable procedure to provide dumps for debugging in development.

2 Comments
midhun_vp
Active Contributor
0 Kudos

Interesting, Thanks for the document.

In what cases memory leaks ?

- Midhun VP

andreas_wegmann
Advisor
Advisor
0 Kudos

There might be several reasons like corrupted installation, malformed queries etc.

- Andreas