Installing a Server under Linux

#### Search Results

Search

# Installing a Server under Linux

This section describes how to install Entire Access on a Linux server. It covers the following topics:

- Before You Install

- Database System Preparation

- Installation Procedure

- Entire Access Directory Structure Under Linux

## Before You Install

Please read the following information, before you proceed with the installation:

- Client and Server Versions

- Hardware and Operating-System Requirements

- Other Software Requirements

- Linux Compiler Support

- Database Servers Supported

### Client and Server Versions

This version of Entire Access is downward compatible to Entire Access Version 6, but not to any older version.

### Hardware and Operating-System Requirements

The following tables show the minimum operating-system versions and hardware requirements for selected Linux platforms supported by Entire Access. For a complete list of supported platforms, contact your nearest representative.

Operating System | Hardware Requirement
--- | ---
SUSE Linux Enterprise Server 15 | x86-64
Redhat Linux Advanced Server 8 | x86-64
Redhat Linux Advanced Server 8 | IBM z/Linux 64
Redhat Linux Advanced Server 9 | x86-64

### Other Software Requirements

TCP/IP is required on both client and server machines for remote access.

For information about additional client-machine requirements, see the section for the client platform.

For information about the use of third-party network products, see the section Remote Data Access Using Third-Party Network Products.

### Linux Compiler Support

Entire Access supports the vendor compiler, including the Linker or Loader, for each supported Linux platform.

### Database Servers Supported

Support for specific databases depends on the Linux and Cloud platform(s). Except where noted, access can be either local or remote.

The following database server versions are supported:

- Db2 10, 11, and 12

- Oracle 12c, 19c, 21c, and 23c

- MySQL 8 and 9 (not on Linux IBM Z)

- MariaDB 10 and 11 (not on Linux IBM Z)

- PostgreSQL 15, 16, and 17 (not on Linux IBM Z)

- ODBC-compliant servers (local access)

#### Oracle

With Oracle, problems may occur in conjunction with fields of types LONG and LONG RAW. These problems are due to the status of the OCI API in the 64-bit Oracle versions. Instead of LONG and LONG RAW, use types CLOB and BLOB respectively.

## Database System Preparation

Before you begin to install Entire Access, perform the following steps:

- Install your DBMS software.

- Set the environment variables for the relevant RDBMS. See the table below for a list of the environment variables required for each RDBMS.

- Db2 users: Create the links for the Db2 libraries with the command `Db2ln`. See the DATABASE 2 Linux installation guides for more information.

### Environment Variables

RDBMS users must set the environment variables according to the shell being used, as shown in the following table. Except where noted, these variables are required at build time and/or runtime.

RDBMS | Environment Variable | Build/Run Time
--- | --- | ---
Db2 | `DB2_HOME` `DB2INSTANCE` `PATH=$PATH:$DB2_HOME/sqllib/adm:` `$DB2_HOME/sqllib/bin:` `$DB2_HOME/sqllib/misc` | Build Run Run
Oracle | `ORACLE_HOME` `ORACLE_SID` `TWO_TASK` (optional) 3 | Build/Run Run Run
MySQL | `MYSQL_HOME` | Build/Run
PostgreSQL | `POSTGRESQL_HOME` | Build/Run
MariaDB | `MARIADB_HOME` | Build/Run

1 | If `DBNAME` is set, it will override the database specified in the connect string (that is, Entire Access for TCP/IP will connect to the database specified in `DBNAME` and not to the database specified in the connect string); for further information on connect strings, see the section Define the Data Sources.
3 | `TWO_TASK` must be set to "P:" if the database instance to be accessed is on the local machine. If `TWO_TASK` is set, it will override the database instance specified in the `ORACLE_SID` environment variable.

### Linking MariaDB, MySQL, and PostgreSQL to the Entire Access Database Drivers

The layout of the MariaDB, MySQL, and PostgreSQL directories and files that are used to build the Entire Access database drivers may differ depending on the operation system and installation packages. After installing MariaDB, MySQL, or PostgreSQL, you may need to manually link your RDBMS to the the Entire Access database drivers.

- Linking MariaDB to the Entire Access Database Drivers
- Linking MySQL to the Entire Access Database Drivers
- Linking PostgreSQL to the Entire Access Database Drivers

#### Linking MariaDB to the Entire Access Database Drivers

The `MARIADB_HOME` environment variable links the libmariadb.so shared library to one of the directories $MARIADB_HOME/lib, $MARIADB_HOME/lib64, or $MARIADB_HOME. If the MariaDB installer created the libmariadb.so.n file but did not create the libmariadb.so file, you must create a symbolic link manually with the following command:

    ln -s libmariadb.so.n libmariadb.so

#### Linking MySQL to the Entire Access Database Drivers

The `MYSQL_HOME` environment variable links the libmysqlclient.so shared library to one of the directories $MYSQL_HOME/lib, $MYSQL_HOME/lib64, or $MYSQL_HOME. If the MySQL installer created the libmysqlclient.so.n file but did not create the libmysqlclient.so file, you must create a symbolic link manually with the following command:

    ln -s libmysqlclient.so.n libmysqlclient.so

#### Linking PostgreSQL to the Entire Access Database Drivers

The `POSTGRESQL_HOME` environment variable links the libpq.so shared library to one of the directories $POSTGRESQL_HOME/lib, $POSTGRESQL_HOME/lib64, or $POSTGRESQL_HOME. If the PostgreSQL installer created the libpq.so.n file but did not create the libpq.so file, you must create a symbolic link manually with the following command:

    ln -s libpq.so.n libpq.so

## Installation Procedure

Before you install the Entire Access servers you need to install the Entire Access product according to the installation description in Prerequisite for Installing the Entire Access Server. When the product has been successfully installed continue with the following steps.

### Step 1 - Select the Local Database Drivers

Use the interactive `osxlibs.sh` script to select the database drivers(s) to be used by Entire Access. The selected database drivers for the local databases will be built; they can be used for local access, or for remote access via the Entire Access server (see Step 4).

1. To change your directory, enter the following command:

       $ cd $OSXDIR/$OSXVERS/bin

2. To start the script, enter the following command:

       $ osxlibs.sh

   A list of database drivers appears.

3. Select each desired driver by entering the corresponding number (from the left-hand column) after the prompt and pressing ENTER.

   To deselect a database driver, reenter the number for that driver at the prompt and press ENTER .

   Each selected entry is indicated by an asterisk (*) to the left of the number column. In the following example, the selected entry (*) is local Oracle.

                     ENTIRE ACCESS for TCP/IP X.X.X (Linux x86-64)
                     ==============================

            1  -  remote ENTIRE ACCESS NET
         *  2  -  local Oracle
            3  -  local DB2
            4  -  local DataDirect ODBC
            5  -  local MySQL
            6  -  local PostgreSQL
            7  -  local MariaDB

            g  -  Generate 'osxlibs.lst'          q  -  Exit

       please select an entry:

4. After making your selections, enter "g" and press ENTER.

   The following is an example of the confirmation screen that appears. It lists the values of the environment variables found for the drivers you selected.

               ENTIRE ACCESS for TCP/IP X.X.X (Linux x86-64)
               ==============================

       You have chosen to build the following environments

               - local Oracle

       $OSXDIR      = /nathome/linux64/EntireAccess
       $OSXVERS     = .

       $ORACLE_HOME = /oracle/OracleInstantClient/linux64/instantclient_23_3/

       ora
       ld -o ORA.so tdb0_9.o -shared tb2.a -L/oracle/OracleInstantClient/linux64/instantclient_23_3/lib -lclntsh
       mv ORA.so ../bin

   Note
   Entire Access supports shareable libraries so that, for example, a generic Natural can be built from `OSXAPI.so`, and the target RDBMS for the client application is in fact determined by the connect string. This means that Natural can be built once for all RDBMS drivers without specifically loading any RDBMS driver code into the Natural nucleus. For example, from an Oracle object called `tdb0_9.o` an object called `ORA.so` will be created as the shareable library. ORA is the executable responsible for loading the `ORA.so` shareable library.

5. When using shareable libraries, you may need to set an additional environment variable `LD_LIBRARY_PATH` that points to the directories containing the shareable libraries. Refer to your operating-system's instructions.

6. Verify that the environment variables are correct; then press ENTER to generate the osxlibs.lst file. The screen displays the contents of this file as it is being generated.

   The osxlibs.lst file contains a list of all database libraries to be linked to the Natural prelinked object `natraw.o`. The Natural make file uses osxlibs.lst when a new Natural environment is built with make natural osx=yes ....

7. The build process for local database drivers can also be started without using the `osxlibs.sh` script.

   Enter the `makedb` command with a valid database identifier to build the desired database driver:

       makedb identifier

   identifier | Database Driver
   --- | ---
   cli | DataDirect
   db2 | Db2
   ora | Oracle
   mysql | MySQL
   pgrs | PostgreSQL
   mariadb | MariaDB

   Note
   If necessary, modify the paths in the corresponding makesrv.??? file in order to match your specific system requirements.

### Step 2 - Start the Entire Access Server (for Remote Access)

1. Access the bin directory of the osx installation by entering the following command:

       $ cd $OSXDIR/$OSXVERS/bin

2. Make sure that the database environments for all RDBMS are loaded correctly.

3. Use the interactive `osxopr.sh` script to start a server dispatcher:

       $ osxopr.sh

       ----------------------------------------------------------------
            ENTIRE ACCESS for TCP/IP
             ========================

               1  -  show status
               2  -  start a server
               3  -  kill a server
               4  -  ping a server

               q  -  exit

       please select an entry:
       2

       ----------------------------------------------------------------
             ENTIRE ACCESS for TCP/IP (start a server)
             ========================

       please enter the server number
       8888

       starting server with number 8888

       ----------------------------------------------------------------
             ENTIRE ACCESS for TCP/IP
             ========================

               1  -  show status
               2  -  start a server
               3  -  kill a server
               4  -  ping a server

               q  -  exit

       please select an entry:
       1

       ----------------------------------------------------------------
               ENTIRE ACCESS for TCP/IP (show status)
               ========================

       ENTIRE ACCESS for TCP/IP directory:   /usr/natdev/OSX_TEST2/osx
       ENTIRE ACCESS for TCP/IP version:     X.X.X
       Available server:          ORACLE server
       Available utilities:       serversingle, serverping, serverkill,

       press <return> to continue

       ----------------------------------------------------------------
               ENTIRE ACCESS for TCP/IP (show status)
               ========================

       Available Server Daemon ports:  8888

       list of active client/server connections:

            TYPE                INST.   OWNER
       --------------------------------------

       press <return> to continue

       ----------------------------------------------------------------
             ENTIRE ACCESS for TCP/IP
             ========================

               1  -  show status
               2  -  start a server
               3  -  kill a server
               4  -  ping a server

               q  -  exit

       please select an entry:
       4

       ----------------------------------------------------------------
             ENTIRE ACCESS for TCP/IP (ping a server)
             ========================

       please enter the server number:
       8888

       please enter the hostname (default: sunedb):

       pinging server with number 8888 on sunedb ...

       server #8888 is alive and kicking

## Entire Access Directory Structure Under Linux

The following is the Entire Access directory structure under Linux:

### On this page

- Before You Install
- Database System Preparation
- Installation Procedure
- Entire Access Directory Structure Under Linux