How to activate Adabas as a service in LINUX, if the database has a user exit defined?

Introduction

When configuring Adabas as a service in Linux, you may encounter challenges related to user exits. In this guide, we’ll explore the steps to activate Adabas as a service while considering user exits. (In this case, uex4).

Pre-requisites

Product Adabas
Versions 7.0.1, 7.1.1, 7.2, 7.3
Platforms Linux and Cloud

Problem

You may encounter such an issue by creating a daemon (as example db012.service) with the command:
create_systemd_service_file.sh 012 sag

and starting the database as a service with:
systemctl start db012

Cause

If the adanuc.log entries include “shared library ADAUEX_4, path name () could not be loaded” and “invalid environment variable” error messages, it implies difficulties in starting the database as a service, with a user exit defined.

Setting the environment variable ADAUEX_4 in a command shell is not adequate when the database is configured as a systemd service. To solve this stumbling block, define an entry in the DBXXX.INI file of the database in the [ENVIRONMENT] section.

The inability to start a database with a user exit defined could manifest in the form of loading errors in the shared library ADAUEX_4.

Resolution

Setting the environment variable ADAUEX_4 in a command shell is not sufficient when a database is configured as a systemd service.
A possible solution is to define an entry in the DBXXX.INI file of the database in the section [ENVIRONMENT]:

Example:

[ENVIRONMENT]
...
ADAUEX_4 = <SAG directory>/Adabas/examples/libadauex4.so
...
[ENVIRONMENT-END]

(This requires an entry "USEREXITS = 4" in the [NUCPARMS] session, too)

[NUCPARMS]
...
USEREXITS = 4
...
[NUCPARMS-END]