Machine Notes for Linux


                      =================================
                            MACHINE SPECIFIC NOTES
                                    FOR
               HCL OneDB Database Server 1.0.1.0 PRODUCT RELEASE
                               On Linux x86_64
                               DATE: 15 May 2021
                      =================================

OS Information : Built on Red Hat Enterprise Linux ES release 7.4 (Maipo).

System Requirements
===================

1.  This product was built on Red Hat Enterprise Linux ES release 7.4
    (Kernel: 3.10.0-693, Glibc: 2.17) for x86_64 compatible processors.
    The following compilers were used:

        gcc and c++ compiler 4.8.5 20150623 (Red Hat 4.8.5-16) for GLS and ICU
        gcc and c++ compiler 7.3.1 20180303 (Red Hat Devtoolset-7) for the server

    The following package have to be installed on your Linux system:

        libaio-0.3.109
        libgcc-4.8.5
        libstdc++-4.8.5
        ncurses-5.9
        pam-1.1.8
	elfutils-libelf-0.168

    Please note that this version of Informix does not support Linux
    environments with kernel version lower than 3.10.0-693.

    For Informix Blade development GNU linker may need to be updated to
    GNU ld version 2.28-11.el7 or newer.

    Update is not needed for install and operation of Informix

    This product has been certified on:

        - Red Hat Enterprise Linux ES release 8.0 (Kernel: 4.18.0-80,
	  Glibc: 2.28-42). The following packages have to be installed:

          libaio-0.3.110
          libgcc_s1-8.2.1
          libstdc++6-8.2.1
          ncurses-utils-6.1-7
          pam-1.3.1-4
	  elfutils-libelf-0.174-6

        - SUSE SLES 12.3 (Kernel: 4.4.73-51, Glibc: 2.22-61). The following
	  packages have to be installed:

          libaio-0.3.109
          libgcc_s1-6.2.1
          libstdc++6-6.2.1
          ncurses-utils-5.9-40
          pam-1.1.8-23
	  libelf1-0.158-6

	- SUSE SLES 15 (Kernel: 4.12.14-25, Glibc: 2.26-13). The following
	  packages have to be installed:

          libaio-0.3.109
          libgcc_s1-8.2.1
          libstdc++6-8.2.1
          ncurses-utils-6.1.3
          pam-1.3.0-6.3.1
	  libelf1-0.168-2

        - Ubuntu Server Edition 16.04 LTS (Kernel: 4.4.0-142, Glibc: 2.23).
          The following packages have to be installed:

          libgcc      5.4.0
          libstdc++6  5.4.0
          libncurses5 6.0
          libpam      1.1.8
	  libelf1-0.165-3

        - Ubuntu Server Edition 17.10 (Kernel: 4.13.0-21, Glibc: 2.26).
          The following packages have to be installed:

          libgcc      7.2.0
          libstdc++6  7.2.0
          libncurses5 6.0
          libpam      1.1.8
	  libelf1-0.170-0
	  libelf1-0.170-0

        - Ubuntu Server Edition 18.04 LTS (Kernel: 4.15, Glibc: 2.27).
          The following packages have to be installed:

          libgcc      7.5.0
          libstdc++6  7.5.0
          libncurses5 6.1
          libpam      1.1.8
          libelf1-0.170-0

        - Ubuntu Server Edition 20.04 LTS (Kernel: 5.4.0, Glibc: 2.31).
          The following packages have to be installed:

          libgcc      10.2.0
          libstdc++6  10.2.0
          libncurses5 6.2
          libpam      1.3.1
          libelf1-0.176-1

	On Ubuntu 20.04 LTS the kernel setting 'fs.protected_regular' defaults
	to '2'. This could cause initialization errors on instances configured
	with a SHM listener. To support SHM connections this parameter needs
	to be set to '0' (e.g., 'sudo sysctl fs.protected_regular=0')

    The bc utility is required by the product installer, and needs to be
    installed on Ubuntu.

2.  The UNIX graphical tools ipload, onperf and xtree only require
    Motif runtime libraries version 2.3.x. The minimum version is
    2.3.4, i.e. motif-devel-2.3.4-14.el7_5.x86_64

3.  The Korn shell is required for the Informix server alarmprogram
    scripts. Install it as /bin/ksh. On Ubuntu Server Edition, pdksh needs
    to be installed.

4.  If a suitable library libaio.so.1 is found, HCL OneDB Database Server
    enables Kernel Asynchronous I/O (KAIO) automatically. Otherwise KAIO is
    disabled.

5.  HCL OneDB Database Server uses the libraries and utilities provided by
    OpenSSL, for data encryption and Secure Sockets Layer (SSL) communication.
    The OpenSSL library is not included with this product and must be
    installed separately.

    More information about OpenSSL can be found at https://www.openssl.org.

6.  The OneDB product installer may fail to start correctly. When it aborts
    the following two messages are displayed:

       Installer User Interface Mode Not Supported
       Unable to load and to prepare the installer in console or silent mode.

    This can happen due to a known problem in the Java Virtual Machine that
    is internal to the installer. This problem is known as
    "JDK-8188030 : AWT java apps fail to start when some minimal fonts
    are present".
    It may appear when only minimal fonts of the CFF format are installed on
    the machine.

    On a Linux system with Intel x86 64-bit architecture, this problem can be
    worked around by installing an additional font with a format different than
    CFF. For example fonts from the font package "gnu-free-mono-fonts" are
    known to allow the Informix product installer to start and operate
    correctly. This font package can be installed on RedHat distributions by
    executing the following command as user root:

System Configuration
====================

1.  Kernel Parameters

    The values of the kernel parameters that were used for testing this
    product are given below. These values might need to be tuned depending
    on the application and availability of system resources. They
    can either be dynamically changed in the /proc file system or are defined
    in the kernel sources and can be changed by rebuilding the kernel.

    SHMMAX:   4398046511104
    SHMMNI:   4096
    SHMALL:   4194304
    SEMMNI:   4096
    SEMMSL:   250
    SEMMNS:   32000
    SEMOPM:   32

    - The value of the kernel parameter "SEMMSL" should be set to at least
      100. This is the maximum number of semaphores per set.

2.  Location of Shared Memory

    The ONCONFIG variable SHMBASE is set to the following:

        SHMBASE 0x44000000L

3.  Environment Variables

    It is recommended that the environment variable INFORMIXSTACKSIZE be
    set to 128 (the default is 64) if the application involves operations
    which would require the HCL OneDB Database Server to perform recursive
    database tasks (for example, cascading deletes).


Feature Notes  (alphabetized by feature)
=============

1.  High Performance Loader

    User-defined conversion routines must be provided in a dynamic, shared
    64-bit library called ipldd11a.so. This library is installed in the
    $INFORMIXDIR/lib directory. You can set the location of this file with
    the HPL_DYNAMIC_LIB_PATH configuration parameter in file pointed to by
    PLCONFIG environment variable. For more details, refer the manual
    "High-Performance Loader User's Guide".

    The following two environment variables are required to be set as:

        PLOAD_SHMBASE=0x000004000000000
        IFX_XFER_SHMBASE=0x000005000000000

    Onpload will use shared memory during its execution. It will allocate
    memory beyond the address for the server, leaving room for server shared
    memory expansion.

2.  IPv6 Support

    The Informix database server supports Internet Protocol Version 6 (128 Bit
    Internet Addresses) as well as IPv4 (32 Bit Addresses).

    In order for the machine name that is specified in the SQLHOSTS file to
    resolve to the correct IP address, the name services files on the operating
    system must be configured correctly. If the machine has an IPv6 address
    configured, and the listener thread is bound to an IPv6 address, then the
    name service switch files /etc/nsswitch.conf must be configured to fetch
    an IPv6 address. Also any local machine settings must be set correctly in
    the /etc/hosts file.

    For compatibility with earlier version of Informix client and server
    products, assign each host name with both an IPv4 address and an IPv6
    address. If the listener needs to be bound to an IPv4 address, and the
    name services resolve the name in the order of the IPv6 address followed
    by the IPv4 address, then an explicit IPv4 address needs to be put in the
    host name field of SQLHOSTS file. Client applications should also use the
    same setting.

3.  J/Foundation (Java in the Server):

    The IBM Runtime Environment, Java Technology Edition, Version 8.0
    release is installed in $INFORMIXDIR/extend/krakatoa/jre and should be
    used with the J/Foundation component.

    A Java user-defined routine (UDR) runs in a Java virtual processor. Use
    the VPCLASS configuration parameter to specify the number of virtual
    processors for the server. You configure Java virtual processors in
    the "Java configuration parameters" section of the onconfig configuration
    file. The default onconfig.std file is in the $INFORMIXDIR/etc directory.

    To develop Java UDRs for the server on this platform, use the 64-bit
    IBM SDK, Java Technology Edition, Version 8 or an earlier version
    according to Java compatibility guidelines. Java SDK 8 contains the
    latest virtual machine technology from IBM and can be downloaded from
    http://www.ibm.com/java/jdk/.

4.  Kernel Asynchronous I/O (KAIO)

    KAIO is enabled by default on this platform. It can be disabled by setting
    the environment variable KAIOOFF=1 in the environment of the process that
    starting the server.

    When using KAIO, it is recommended to run poll threads on separate VPs by
    specifying NET as VP class in the NETTYPE onconfig parameter, e.g.
    NETTYPE ipcshm,...,...,NET or
    NETTYPE soctcp,...,...,NET

    On Linux, there is a system wide limit of the maximum number of parallel
    KAIO requests. The file /proc/sys/fs/aio-max-nr is containing this value.
    It can be increased by the Linux system administrator, e.g. by

    # echo new_value > /proc/sys/fs/aio-max-nr

    The current number of allocated requests of all OS processes is visible
    in /proc/sys/fs/aio-nr.

    By default, HCL OneDB Database Server is allocating half of the maximum
    number of requests, and assigns them equally to the number of configured
    CPU VPs. The number of requests allocated per CPU VP can be controlled by
    the environment variable KAIOON, by setting it to the required value before
    starting the server. The minimum value for KAIOON is 100. If Linux is
    about to run out of KAIO resources, e.g. when dynamically adding many CPU
    VPs, warnings will be printed to the online.log file. In this case, the
    Linux system administrator should add KAIO resources as described above.

5.  Large Memory Addressability (LMA)

    HCL OneDB LMA provides the ability to support system configurations
    with greater than 4GB of RAM. Most UNIX systems are limited to 4GB of
    RAM based on the memory addressing limitations of 32-bit architectures.

    The values for the following ONCONFIG parameters are increased from
    32-bit to 64-bit platform by LMA support:

        - The maximum number of buffers in BUFFERPOOL is 2147483647.

        - The maximum of LRU queues for lrus field in BUFFERPOOL is 512.

        - The DS_TOTAL_MEMORY, which is the total memory available for
          decision support memory, is only limited by the amount of virtual
          memory available. The sort memory comes out of the DS_TOTAL_MEMORY
          memory and hence there is no explicit limit on the amount of sort
          memory.

        - The read ahead parameter RA_PAGES is only limited by the number of
          buffers and therefore can be any value less than 2147483647. The
          "chunk" write algorithm is not dependent on the amount of buffers
          or shared memory and can write as many pages in a single I/O as
          possible.

        - The maximum size of any shared memory segment is 4398046511104 bytes.

        - The value for SHMADD is 4294967296 kilobytes.

    Refer to HCL OneDB Administrator's Reference manual for the
    information about the related configuration parameters setting.

6.  Locking large pages in memory

    The Informix database server can use large pages in memory when queries
    require more memory. (On Linux operating systems, large pages are called
    huge pages.) However, after you initialize Informix on Linux operating
    systems, the database server is unable to lock large pages in memory when
    queries require more memory. If you want to take advantage of the large-page
    support, you must use the onmode utility to add memory segments, and then
    run the queries.

7.  Network Protocols

    The following protocols and interfaces are supported on this platform:

       SOCKETS using TCP/IP
       IPC using stream pipe (implemented using UNIX Domain Sockets)

    To use SOCKETS with TCP/IP:

       a. The NETTYPE entry in the ONCONFIG file and the nettype field in
          the sqlhosts file entry must contain "onsoctcp".

       b. To enable an IBM Data Server Client to connect to the database
          Server, the NETTYPE entry in the ONCONFIG file and the protocal
          value in the sqlhosts file entry must contain "drsoctcp"

          If a CLI or JCC client wants to connect to the database server
          through DRDA while supporting SQLI connections, you must add a
          DBSERVERALIASES entry to the ONCONFIG file that corresponds to
          the sqlhosts file entry.

    To use IPC (interprocess communication) with stream pipe:

        a.  The NETTYPE entry in the ONCONFIG file and the nettype field in
            the sqlhosts file entry must contain "onipcstr".

    Fast poll is supported with TCP/IP and stream pipe interfaces. To disable
    fast poll, set the FASTPOLL parameter to 0 in the ONCONFIG file. By default
    the fast poll is enabled (value is 1).

    Remote 32-bit or 64-bit applications and tools (example: ESQL/C, 4GL, ISQL)
    can only connect to the HCL OneDB Database Server using the TCP/IP
    protocol.

    Local 32-bit applications and tools can connect to the 64-bit server
    using either the TCP/IP sockets or the IPC stream pipe protocols.

    The protocol for supporting IBM Informix MaxConnect on this platform
    is "onsocimc".

8.  Online Backup and Restore (ON-Bar)

    ON-Bar uses the XBSA interface. Some of the functions invoked by ON-Bar
    are in a shared library supplied by third party storage management vendors.
    For ON-Bar to access the functions, set the BAR_BSALIB_PATH parameter in
    $INFORMIXDIR/etc/$ONCONFIG to the full pathname of the library.

    This shared library must be compiled in 64-bit mode.

    Using $INFORMIXDIR/lib/ibsad001.so as a symbolic link to the library is
    deprecated and shall be discontinued.

    Informix Interface for Tivoli Storage Manager (TSM) is supported on this
    platform. The interface is built with TSM API version 5.3.2.

9. OnSNMP

    The SNMP agent for OnSNMP is based on SNMP Research (SNMPR).

10. Pluggable Authentication Module (PAM)

    PAM functionality is supported on Linux operating systems. PAM requires
    the libpam.so library that is supplied by the Operating System vendor.

    Use of PAM can be enabled or disabled by the system administrator. By
    default, the Informix server will use the traditional authentication
    mechanism to avoid changes for the users.

    The PAM modules are usually located in /lib64/security. The PAM services
    are defined in /etc/pam.d.

11. Processor Affinity

    The processor affinity feature, which allows the pinning of a CPU
    virtual processor to a physical processor in a multi-CPU configuration,
    is supported on this platform.

12. Raw Character Devices

    Some Linux distributions support binding a raw character device to a
    block device. Any block device may be used. HCL OneDB Database Server
    supports using raw character devices.


(C) Copyright IBM Corp. 2002, 2017
(C) Copyright HCL Technologies Ltd. 2017, 2021. All Rights Reserved.