SAP: JAVA System Performance Issue

Hello All,

Recently we have faced issue in our SAP Process Orchestration system where all DB connections were getting occupied after starting in few minutes.

We have identified the cause of this issue where 1 of our channel is sending thousands of messages to third party & due to delay in acknowledgment, it’s consumed all the DB process & system get hung.

We found that after even restart of application servers, DB connections were not getting destroyed automatically even though there enough DB connections are free at DB side. The issue is lying under application layer & below error is occurring Default Trace –

Exception of type com.sap.sql.log.OpenSQLException caught: No connection to data source SAPDB available. All 100 pooled connections are in use and 40 connection requests are currently waiting. The connection pool size might need to be adjusted..

Default DB Pool size = 100

There is an standard SAP note where SAP is suggesting to increase the value from 100 to 250 of respective parameter in Config Tool & restart the system. we tried the same but after restart 250 connections completely occupied & same issue was occurring.

https://launchpad.support.sap.com/#/notes/1600085

PO team identified the channel & stop the channel temporarily to avoid the issue & system back to Normal. They have cleared the stuck message & restart the channel after some time.

Now from BASIS side our responsibility is to Monitor the DB connections to avoid the hanging situation. we found below URL to monitor the DB connections & also destroy the same if requires.

http:// hostname:port number/OpenSQLMonitors

The above URL is just like ST04 of any ABAP system & it’s very useful to monitor your critical SAP JAVA system regularly to avoid any unscheduled downtime.

SAP: Digitally Signed SAP Note Support

As per SAP Blog, Jan 2020 onward download & upload process of SAP note from SNOTE transaction will stop until unless SNOTE is enabled in ABAP systems to with Digitally signed SAP Notes.

This is the secure method to download the SAP notes & all SAP note will get download only as SAR files.

Below are the SAP note which is helpful for Configuring the same.

Enable Note Assistant (SNOTE) for downloading and uploading digitally signed SAP Notes,
please implement SAP Notes 2408073, 2546220 and 2508268.

2576306 – Transport-Based Correction Instruction (TCI), it contains the SAP Notes 2408073, 2546220 and 2508268. If the SNOTE in your ABAP system is already enabled for TCI, It is recommended to implement only TCI SAP Note 2576306 instead of applying the above individual SAP Notes.

You can download the instructions from Support Portal with Subject – SAP Note Transport-Based Correction Instructions.

SAP: What is SAPCPE & Usage of SAPCPE

SAPCPE is an program which exists in your Kernel folder. it helps to copy kernel binaries from one location to another exe location.

Whenever we run the “STARTSAP” command, SAPCPE copy or verify the kernel binaries from “CDEXE” location to Instance/exe. it depends whether how much instances you have including ASCS/SCS, ERS & Gateway.

When we perform Kernel Upgrade activity we update the kernel patch level on “CDEXE” location & rest other location are having the old version of kernel. if we want to update the kernel patch level in Instance EXE before starting the system then we can perform the same via SAPCPE manually.

For doing this, we need to find the respective instance profile & run the below command.

Example –

sapcpe pf=/usr/sap//SYS/profile/Instance_Profile

Once you trigger the above command it copies the required binaries from CDEXE location to respective profile instance directory/exe & update the kernel.

How it Works Internally

There are some LST files exists in the kernel directory(CDEXE) where it read the LST file to copy the same. we have separate LST file for Instance, ERS, ASCS/SCS & Gateways. These LST files are mentioned in the respective profiles.

For Example –

sapcpe pf=/usr/sap//SYS/profile/Instance_Profile

When you run the above command SAPCPE read the Instance_Profile & find out the LST file mentioned in profile & based on this LST file, it transfer the respective binaries only from CDEXE to Instance Directory/exe.

The same procedure also happen when you trigger the STARTSAP.

I hope this clarifies the SAPCPE usage.