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

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

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

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:

Entire Access directory structure