Machine Notes for AIX


                      =================================
                            MACHINE SPECIFIC NOTES
                                    FOR
               HCL OneDB Server 2.0.0.0 PRODUCT RELEASE
                             ON IBM AIX 7.2 64bit
                               DATE: 05 Aug 2021
                      =================================

OS Information : Built on AIX 7.2 Technology.

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

1.  This product was built on AIX 7.2 Technology using the following
    compilers:

    IBM XL C/C++ for AIX, V11.1 (5724-X13)
    XL C/C++ Runtime      13.1.3

2.  AIX patch requirement:

        TL2 (7200-02-02-1810)

3.  The UNIX graphical tools provided with this release require X Window
    system X11R6 and Motif 2.3.4 or later runtime libraries.

4.  The High Performance Loader utilities, onpload and ipload, require a
    minimum of 35 MB of memory and 70 MB of swap space in order to run.

5.  If you are using Java(TM) UDRs, please refer to "AIX Loader Domains" under
    J/Foundation section for details.

6.  OneDB 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.


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

1.  Location of Shared Memory

    The configuration parameter SHMBASE should be set to the following:

        SHMBASE 0x700000010000000

    If you are using Java UDRs, refer to the J/Foundation section for setting
    the SHMBASE value.

2.  Environment Variables

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

    b. If you are using Java UDRs, set environment variable LDR_CNTRL to
       include the value "USERREGS" and "LOADPUBLIC" before starting
       OneDB Server:

           export LDR_CNTRL=LOADPUBLIC@USERREGS


Feature Notes
=============

1.  High Performance Loader

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

    To create a 64-bit shared library, the environment variable OBJECT_MODE
    should be set to 64 to convey to the compiler that a 64-bit object is to
    be generated. The "-q64" flag for cc can also be used to indicate to the
    compiler that 64-bit object is to be generated.

2.  IPv6 Support

    OneDB 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 resolution file /etc/netsvc.conf must be configured to fetch an IPv6
    address. Also any local machine settings must be correct in the
    /etc/hosts file.

    For compatibility with earlier versions of 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 $ONEDB_HOME/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 configuration file.
    The default onconfig.std file is in the $ONEDB_HOME/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/.

    Location of Shared Memory
    -------------------------
    When using OneDB Server with J/Foundation, the
    configuration parameter SHMBASE should be set to the following:

        SHMBASE 0x700000030000000

    AIX Loader Domains
    ------------------
    If multiple shared libraries are loaded onto two VPs, one of which is
    a Java VP, and the libraries are not loaded in the same order on each
    VP, executing a function from the libraries can cause
    OneDB Server to core dump with the following message in the
    message log file:

        09:35:58  Assert Failed: Exception Caught. Type: MT_EX_OS, Context: ill
        09:35:58   Who: Session(15, informix@ibms70, 46918, 1075033896)
                        Thread(41, sqlexec, 4010c7d8, 3)
                        File: mtex.c Line: 372
        09:35:58   Action: Please notify Technical Support.

    You would typically encounter this error if your application is using
    both C UDRs and Java UDRs.

    To resolve this problem, the AIX loader domains concept is used. The
    loader domain provides a means of loading shared libraries at the same
    virtual address in a set of processes. The loader domain file is created
    during the installation of OneDB Server. This is
    installed as "/var/adm/ifx_loader_domain".

    OneDB Server with J/Foundation on AIX requires the loader
    domain file "/var/adm/ifx_loader_domain" to exist at all times. If the
    file does not exist, create it as superuser using the following commands:

        touch /var/adm/ifx_loader_domain
        chgrp informix /var/adm/ifx_loader_domain
        chmod 660 /var/adm/ifx_loader_domain

4.  Kernel Asynchronous I/O (KAIO)

    KAIO is enabled by default on this platform.

    The Asynchronous I/O (AIO) subsystem is loaded by default but not
    activated. No AIO server is started at AIX startup. The AIO server is
    automatically started when applications are initiating AIO requests. It
    stays active as long as it services AIO requests.

    To disable KAIO, set the environment variable KAIOOFF:

         KAIOOFF=1 ; export KAIOOFF      ( for Bourne or Korn shell )
         setenv KAIOOFF 1                ( for C shell )

    Limit the number of resident memory segments allocated by
    OneDB Server.
    If OneDB Server allocates a lot of resident memory
    segments and uses a lot of KAIO and direct I/O, KAIO read or write calls
    might fail with errno 22 (EINVAL). EINVAL errors can lead to down dbspaces
    or system aborts. The following error typically appears in the server log:

         04:30:40  KAIO: error in kaio_WRITE, kaiocbp = 0x22b620d0, errno = 22
         04:30:40  fildes = 258 (gfd 3), buf = 0x700000122b64000, nbytes = 4096,
                   offset = 130785280

    The usual reason for these EINVAL errors is that the OS is running low
    on resident memory pages because OneDB Server has too many
    shared memory segments allocated as "resident," as well as pinned OS
    kernel memory and KAIO resources.

    You can prevent these errors by setting fewer, or no,
     OneDB Server shared memory segments as resident.
    Set the RESIDENT configuration parameter in the onconfig file to 1 or 0.

5.  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 configuration 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 configuration 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 configuration file that corresponds to
          the sqlhosts file entry.

    To use IPC (interprocess communication) with stream pipe:

        a.  The NETTYPE entry in the configuration 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 configuration file.
    By default the fast poll is enabled (value is 1).

    Remote 32-bit applications and tools (example: ESQL/C, 4GL, ISQL) can
    only connect to the OneDB 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.

6.  No Age (Disable Priority Aging)

    The no aging feature that disables priority aging of CPU virtual processors
    by the operating system can be activated by setting the noage option of the
    VPCLASS configuration parameter for the CPU virtual processors. For example,
    the following configuration parameter entry specifies that there are 8
    CPU VPs, each without aging:

    VPCLASS cpu,num=8,noage

    When the noage option is used, all oninit processes will run at priority
    60 with fixed priority round robin type scheduling.

    To override the default priority value for CPU VP class, set the
    environment variable INFX_CPUVP_PRIORITY to the desired priority,
    within limits (50 to 90) before starting the server.

    The server checks and sets the CPU VP process to the defined priority
    if the defined value is within the above range.

7.  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 these functions, set the BAR_BSALIB_PATH parameter in
    the configuration file to the full pathname of the library.

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

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

8.  Pluggable Authentication Module (PAM)

    PAM functionality is supported on AIX 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, OneDB Server will use the traditional
    authentication mechanism to avoid changes for the users.

    The PAM modules typically reside in /usr/lib/security/64. The PAM
    services are defined in /etc/pam.conf.

9.  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.

10. Shared Memory Residency

    Shared Memory Residency is supported. This feature can be enabled by
    setting the configuration parameter RESIDENT to a non-zero value.

    Please read the KAIO section in this file if you are using
    Shared Memory Residency together with KAIO or DIRECT_IO, as this
    combination may cause problems.

    See APAR IC76872 for further information.

11. Single Sign On (SSO)

    This feature requires AIX system library libgssapi_krb5 to be installed
    on the system. This library is included in krb5.toolkit.adt (Network
    Authentication Service App. Dev. Toolkit).


Features not Supported
======================

1.  Concurrent I/O on Shared Disk Secondary Servers.

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