SAP NetWeaver ABAP not starting – libSQLDBCHDB.so missing
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 <sid>adm logs on. Take a look at the home directory of the <sid>adm user. Several scripts are available. In case these scripts are not called, for instance as in the below shown example because the <sid>adm does not have the permission, important environmental variables are not set.
Ensure that the scripts are run successfully when <sid>adm logs on. In my example, this is solved by giving <sid>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}
1 Comment
Gurpreet Nagra · February 10, 2023 at 19:44
This can also happen if default shell for adm’s is not C Shell, as environment variables wouldn’t be setup properly.