Header image

It's full of stars

Where documentation meets reality


SAP NetWeaver ABAP not starting – libSQLDBCHDB.so missing

By Tobias Hofmann April 19, 2021 Posted in SAP

Reading time: 2 min read


Problem

You want to start SAP NetWeaver ABAP. The ASCS service starts, the dialog instance not. The status reported of the DIA is GRAY for disp+work.

/usr/sap/A4H/D00/exe/sapcontrol -nr 00 -function GetProcessList

Root cause

More information can be obtained in the output of the work processes. The traces can be found in the work directory of DIA.

M ThInit: running on host vhcala4hci
I MtxInit: ABAP_WP_0 0 0
M calling db_connect ...
B Loading DB library '/usr/sap/A4H/D00/exe/dbhdbslib.so' ...
M *** ERROR => DlLoadLib()==DLENOACCESS - dlopen("/usr/sap/A4H/D00/exe/dbhdbslib.so") FAILED
"libSQLDBCHDB.so: cannot open shared object file: No such file or directory" [dlux.c 550]
B *** ERROR => Couldn't load library '/usr/sap/A4H/D00/exe/dbhdbslib.so'
M ***LOG R19=> ThDbConnect, db_connect () [thxxtool.c 5860]
M in_ThErrHandle: 1
M *** ERROR => ThInit: db_connect (step TH_INIT, thRc ERROR-DB-CONNECT_ERROR, action STOP_WP, level 1) [thxxhead.c 2690]

The root cause is that a library cannot be loaded.

"libSQLDBCHDB.so: cannot open shared object file: No such file or directory"

The library is available in the system. You find it at the following locations:

/usr/sap/<SID>/hdbclnt/libSQLDBCHDB.so
/usr/sap/<SID>/hdbclient/libSQLDBCHDB.so
/usr/sap/hostctrl/exe/libSQLDBCHDB.so

Solution

For the NetWeaver admin user be able to start NetWeaver, some scripts are normally executed when the user adm logs on. Take a look at the home directory of the adm user. Several scripts are available. In case these scripts are not called, for instance as in the below shown example because the adm does not have the permission, important environmental variables are not set.

Ensure that the scripts are run successfully when adm logs on. In my example, this is solved by giving adm the permission to run them

chown a4hadm:sapsys .*

Regarding the missing library, this is caused because the work processes is not finding the library. The library path is defined in environment variable LD_LIBRARY_PATH. The value of the path is set in e.g. .dbenv.sh:

clientPath=/usr/sap/"$SAPSYSTEMNAME"/hdbclient
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${clientPath}