=================================
MACHINE SPECIFIC NOTES
FOR
Informix Dynamic Server 9.21.UC4 PRODUCT RELEASE
DATE: 30 Nov 2000
=================================
PORT NUMBER:  050831(CD ROM) 135150(ELEC. DELIVERY)
IRIS JOB NUMBER: 30696


Informix Dynamic Server Shared Memory Parameters and Kernel Parameters:
==============================================================================


  Note: ADJUSTING a parameter means using the 'adjust' feature
  in the kernel menu configuration. SETTING a parameter means
  using the 'set' or 'new default' feature in the kernel menu
  configuration.


Asynchronous I/O configuration
 
   The kernel parameters NABUF and MAXAIO must be adjusted
   in order to allow the Informix Dynamic Server to perform
   correctly. The recommended value is an 'adjust' of 128 times
   the number of CPU VPs. For instance, on a system running
   6 Informix CPU VPs, NABUF and MAXAIO need to be adjusted
   by 768.
 
   If NABUF and MAXAIO are configured too small, Informix will
   report the error message 
   "KAIO: out of OS resources, errno = 11, pid = " 
   in the online.log file.


Message queue configuration
 
   This section applies only if there are clients connected
   to the database using the IPCSHM nettype.
 
   Informix recommends a message segment size of 32 (kernel
   parameter MSGSSZ). The number of message headers (MSGTQL)
   and message segments (MSGSEG) depend on the number of
   clients connected to the database using the IPCSHM mechanism.
 
   Setting MSGTQL and MSGMNI to 2 times the number of clients
   and MSGSEG to 4 times the number of clients is a good start.
   Fine-tuning can be achieved by monitoring the actual message
   queue activity using "ipcs -aq".


Semaphore kernel configuration
 
   SEMMSL should be set at 1024, and SEMMNS to 4096.
   Note: In previous Informix release notes, SEMMNI was set to 
   8192 for testing.  This is no longer necessary.
 
   Fine-tuning of semaphore parameters can be achieved by running
   "ipcs -as" to see what is actually used.


Shared memory configuration
 
  In order to allow shared memory locking in RAM, the following
  two parameters must be set as follows:
 
  SHM_LOCK_OK 1
  SHM_LOCK_UID 0 (or -1)


  The kernel parameter SHMMAX must be increased to reflect
  the amount of shared memory configured for the BUFFERS,
  LOCKS, and SHMVIRTSIZE parameters of Informix.


  Likewise, SHM_LOCK_MAX should be increased when applicable.


File descriptor configuration
 
  The parameter SFNOLIM must be configured to be slightly
  bigger than the number of chunks in the database. Furthermore,
  NFILE must be adjusted by the number of chunks multiplied by
  the number of CPU VPs.
  
  Typically, on a database with 5 CPU VPs and 400 chunks, one
  would use SFNOLIM set to 512, and NFILE adjusted by 2000.
  
  Fine-tuning of NFILE can be achieved by checking the "file-sz"
  column in the output of the command "sar -v". 


Users


  MAXUSERS should be updated to reflect the number of clients
  locally connected to the database (host mode).


TCP connectivity


  N_TCP_PCB_FREE should be adjusted to reflect the number
  of clients connected to the database via the network. 
  
  Note: Adjusting N_TCP_PCB_FREE should adjust NTLI and NTRW
  automatically.


  If fine-tuning is desirable, the command "netstat -m" can be
  used to monitor how many TCP connections are used/free.
  
  * onconfig configuration guidelines for IDS on DYNIX/ptx
  
  * The number of CPU VPs must be less than or equal to the number of
        physical processors.
  * Using the processor affinity mechanism is strongly recommended.
  * Best I/O sizes for physical and logical log buffers are 64K
        or 128K.
  * Use of resident shared memory segments is recommended.
  * USEOSTIME should be set to zero.
  
TCP_KEEPIDLE


   This parameter has a default value of 2 hours which is very high.
   Informix recommends a value of 10 to 15 minutes.


These were the parameters set for testing on a multi-cpu machine.
These parameters need to be tuned depending on the application and 
availability of system resources.


BUFPCT          5 
NABUF           1024 
MAXAIO          1024
MAXUP           1024 
MSGMAP          1024
MSGMAX          65535 
MSGMNI          1024 
MSGSEG          32767 
MSGSSZ          32 
MSGTQL          1024 
N_TCP_PCB_FREE  1024 
SEMMAP          8192 
SEMMNI          8192 
SEMMNS          8192 
SEMMNU          8192 
SEMMSL          1024 
SEMUME          64 
SFNOLIM         512 
SHM_LOCK_OK     1 
SHMMAX          268435456 
SHMMNI          2048 
N_UDP_PCB_FREE  512 
N_UDP_PCB_HDRS  19 
NPROC           2000 


Recommended value of SHMBASE 
============================


SHMBASE: 0x10000000


Machine Specific Notes:
=======================


1. The following protocol(s)/interface(s) are supported for this platform:


        TLI using TCP/IP
        IPC using stream pipe 
        IPC using shared memory


    To use TCP/IP with TLI, the NETTYPE in the ONCONFIG file and the nettype
    field in the sqlhosts file entry must contain "ontlitcp".
 
    To use IPC (interprocess communication) with stream pipe, NETTYPE in 
    the ONCONFIG file and the nettype field in the sqlhosts file entry must 
    contain "onipcstr".
 
    To use IPC (interprocess communication) with shared memory,
    NETTYPE in the ONCONFIG file and the nettype field in the sqlhosts file
    entry must contain "onipcshm".


    The new protocol used for supporting MaxConnect is ontliimc


    For more information on how to configure your server to use 
    with MaxConnect, please refer to the following documents
        Guide to Informix MaxConnect Ver 1.0
        9.21 Server Release Notes


2. The Affinity feature that allows pinning of a CPU VP process to a 
   processor in a multi-cpu configuration is supported on this port.  This 
   feature can be activated through the two onconfig parameters of AFF_SPROC 
   and AFF_NPROCS.


3. Supported devices for the onarchive utility: QIC, 8mm and 4mm DAT tapes.


4. The OnPerf performance monitoring capability is supported in this release.
   OnPerf was tested with ptx/WINDOWS V4.4.1 package.


5. The DB/Cockpit DBA monitoring tool is not supported in this release.


6. Some operating systems lower the priority of processes as the processes
   age. NOAGE which controls priority aging is supported on this platform.


   In other words, processes running on a machine may acquire CPU usage and
   get reduced priority on the system. To avoid lowering of priority value 
   of Informix Dynamic Server processes, NOAGE feature has been implemented.  
   Processes run in real time priority when the value of NOAGE is set to 1 
   in the ONCONFIG file.


   NOAGE feature should be used only on a multiprocessor machine.  The 
   requirements of other time sharing processes running on the system need
   to be taken into consideration when using NOAGE feature.


   When NOAGE and Processor Affinity features are used together, not all
   the CPUs should be used as it may starve the other processes.  In other 
   words, when NOAGE is set, the number of CPUVPS should be one less than 
   the number of physical processors.


   To disable priority aging and enable processor affinity, the operating 
   system must be configured for this product to have the appropriate 
   privileges. Please contact Sequent support for more information.


7. Shared memory residency is supported in this release. In order to allow 
   resident segment locking, the kernel paramenter must be set:


   SHM_LOCK_OK 1
   
   And the following parameter in ONCONFIG must be set:


   RESIDENT     1


8. TERMINFO is supported in this release.


9.  The High Performance Loader is supported in this release.
    The onpload and ipload tools are supported. They require a minimum
    of 35MB of memory and 70MB of swap space in order to run.


    User-defined conversion routines must be provided in a dynamic,
    shared library called ipldd09a.so. This library must be located
    in /usr/lib (or must have a link provided in /usr/lib).


    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.


10. The Operating System Audit Subsystem
    
    Configuring the Operating System Audit Subsystem
    =================================================
    
    The objective of this section is to specify how to configure the
    OS audit subsystem to be able to record INFORMIX Dynamic Server 
    audit records in the OS audit log. The following steps need to be
    performed in order to use the INFORMIX Dynamic Server OS auditing 
    feature.
 
    a. A new audit class "ix" must be introduced to the OS audit
          subsystem as the class for INFORMIX DBMS generated
          audit events.
 
    b. A new event "AU_INFORMIX" must be introduced to the audit
          subsystem. This will be an event type belonging to the "ix"
          audit class, and will be used by the INFORMIX DBMS.
 
    c. The OS audit subsystem must be configured to audit events of the
          event class designated by "ix".
 
    d. The OS audit subsystem must be operational, and auditing enabled.
 
    Starting the audit system
    =========================
    Once you have completed the configuration steps above, enable auditing
    with the new configuration. The OS auditing must be enabled for all users
    that might use the Dynamic Server product, and for the event type 
    AU_INFORMIX, of the event class "ix".  Please refer to DYNIX/ptx System 
    Administration Guide Volume 2 (System Auditing) in order to accomplish 
    this.
 
    The class type "ix" must be introduced by inserting a line defining the
    class in /etc/auclass. The audit class number should be within the range
    91-100 (which is available for definition by users). A sample entry in
    /etc/auclass file is shown below.
 
                # Informix Dynamic Server classes
                99:ix::For Informix Dynamic Server
 
    The event type AU_INFORMIX must be introduced to the OS by inserting a
    line defining this event in the file /etc/auevent. The event type ID
    should be within the range 20000 - 29999 (which is the valid range for
    user defined audit events). A sample entry in /etc/auevent file is shown
    below.
 
                # Informix events
                20002:AU_INFORMIX::For Informix Dynamic Server
 
    Please pay careful attention to the formats, even of the comments,
    because they are parsed by audit commands and by the other audit
    library functions at runtime.
 
    Setting up the System Audit Mask
    ================================
    To receive Informix Dynamic Server Audit Data, Audit Mask must be configured
    to accept class "ix" for the particular user. Please refer to DYNIX/ptx
    System Administration Guide Volume 2 (System Auditing) for more 
    information on Audit Masks and how to configure them. A sample entry
    in /etc/audit_aliases file (which stores the "alias" information that
    uniquely identifies an audit mask) is given below.
 
        # Normal user audit.  This will audit the user as they login or change
        # user states.  It will also audit basic DAC and priv failures.
        #
        normal:         s{login, su, ix},
                        d{open, ix},
                        p{ },
                        o{su, ix}
 
    Important files in configuring OS audit subsystem.
    =================================================
    /etc/audit_aliases
    /etc/auevent
    /etc/auclass
 
    HOW TO DO IT
    ============
    To select which Informix Dynamic Server events are to be audited, 
    specify audit masks using the "onaudit" utility. Refer to the 
    Informix Dynamic Server Trusted Facility Manual (TFM) for further 
    details.
 
    To extract audit records from the operating system audit trail, use
    "onshowaudit -O" to extract Informix Dynamic Server records. Refer 
    to the Informix Dynamic Server TFM for further details.
 
    NOTE:
    -----
    The Informix Dynamic Server Trusted Facility Manual indicates that the 
    "-f" option of the onshowaudit utility (to specify the path of audit trail
    file) can be used for extracting audit records from the Informix audit
    trail only. On Sequent DYNIX/ptx however, the user has to specify the
    "-f" option of the onshowaudit utility for Operating System managed
    auditing also, to extract the audit records created by Informix Dynamic
    Server.


    ALSO NOTE: OS Auditing system has some limitations (Bug 97000). 


11. Maximum size of a shared memory segment allocated by Informix Dynamic
    Server with (SHMBASE at 0x10000000) is about 2.75 GB.  This may be 
    limited by actual memory available and/or kernel configuration.
 
12. Enterprise Replication (ER - referred to as CDR earlier) is supported 
    in this release.


13. OnSNMP is supported in this release.


    Sequent ptx/Agent and ptx/Agent SDK should be installed to use this feature.


    Please note that ptx/Agent 1.3.1 and ptx/Agent SDK 1.3.1 packages 
    have to be procured from Sequent Computer Systems and installed on the 
    machine to use OnSNMP.
 
    Please note that the SR_AGT_CONF_DIR and
    SR_MGR_CONF_DIR environment variables should NOT be set. 


    The Informix Dynamic Server distribution includes the following:


        bin/onsnmp      The OnSNMP subagent itself, packaged as a
                        separate process (referred to as a "loosely
                        coupled dynamic" subagent by SNMP Research).
 
        bin/onsrvapd    The daemon which spawns off a subagent for
                        each server it discovers.
 
        snmp/*V1.mib    SNMP V1 compliant MIB files defining the
                        instrumentation provided with OnSNMP.
 
        snmp/*V2.mib    SNMP V2 compliant MIB files defining the
                        instrumentation provided with OnSNMP.


    In order to update the /usr/agent/config/mgr/snmpinfo.dat file with
    onsnmp info dat file do the following:


    Generate the dat file from the mibfiles using mosy and postmosy.
    cd /usr/agent/config/mgr
    cp snmpinfo.dat snmpinfo.dat.save
    cd $(INFORMIXDIR)/etc
    postmosy -merge 



14. Set the value of the kernel parameter SEMMNU to at least the maximum number
    of open ipcshm connections, plus the number of semaphore undo structures
    required by other processes in the system.


15. Some of the functions called by ON-Bar are in a shared library
    supplied by third party storage management vendors. For ON-Bar to
    access the functions, the storage manager library has to be installed 
    in one of the three ways noted below.


 
        a. Rename the library to /usr/lib/ibsad001.so.
 
        b. Create /usr/lib/ibsad001.so as a symbolic link to the library.
 
        c. Set the BAR_BSALIB_PATH parameter in $INFORMIXDIR/etc/$ONCONFIG
           to the full pathname of the library.



16. In this release, partition profiling can be disabled by setting a new
    configuration parameter, TBLSPACE_STATS, to 0 in the onconfig file.
    When TBLSPACE_STATS is set to 0, the output of onstat -g ppf will
    read "Partition profiles disabled".
 
    Disabling the partition profiling will result in fewer cache
    invalidations and less bus traffic due to fewer updates to the
    partition structure in the shared memory. This feature benefits
    especially the NUMA systems, since disabling partition profiling will
    reduce intra-quad memory updates.


    By default, the value of this parameter is 1 (collection of partition 
    statistics enabled), as with earlier versions of Informix server
    products.


17. It is observed that when an Informix Dynamic Server using 
    the TLI protocol is shut down abnormally and restarted immediately, 
    the following error may appear in the log file:


    listener-thread: err = -25572: Network driver cannot bind a name to
    the port. System error = 5.


    To bring up the Informix Dynamic Server engine immediately, use 
    another TCP port.


    Alternatively, use netstat(1A) to ensure the TCP port is released
    before bringing up the server again.


18. If you are using a NUMA system and have several IP addresses configured 
    on the same physical interface please note: 
    
    The Informix TCP listener thread binds to a particular IP address/port, 
    it listens for incoming calls addressed to only one IP address. So,
    if there are multiple IP addresses configured on the system, a TLI 
    client will not be able to connect to the server (If the DNS is 
    configured to resolve the hostname on a rotary of the four IP addresses, 
    you don't even know which of those addresses has been selected by the 
    Informix TCP listener).


    The solution is that in the $INFORMIXDIR/etc/sqlhosts file, use 
    "*hostname" instead of "hostname". It will make the Informix TCP 
    listener bind to INADDR_ANY instead of a particular address.


19. Informix Dynamic Server versions 6.x, 7.x and 9.x cannot use raw 
    partitions on Sequent ELS (Entry Level System). The generic system 
    limit for raw I/O transfer size is 128 Kbytes for DYNIX/ptx. It is a 
    function of the varying disk device drivers to change this allowable 
    limit during initialization. The ADAPTEC AHA-1542CF controller on ELS 
    systems limit the maximum raw I/O size to 120 512-byte blocks 
    (60 kbytes). Note that the ad(7) man page is incorrect in stating the 
    limit as 254 sectors (127 Kbytes) as per Sequent Report 211660. The 
    only supported disk drivers on ELS systems is the ADAPTEC AHA1542CF SCSI.
    For this reason, Informix Dynamic Server versions 6.x, 7.x and 9.x will 
    not function on ELS systems with raw disk usage.


20. Informix Storage Manager (ISM) is supported in this release. 
    The devices that are currently supported are


    QIC-525 1/4" cartridge drive (model - Tanberg 3820)
    4mm DDS drive (model - HP C1533A)
    4mm DDS Autoloader 
    8mm drive (model - Exabyte EXB-8500DT)


21. The shadow password feature is supported on this platform.  In order to 
    use this feature, /etc/shadow, in addition to /etc/passwd, must be in use.
    This is the default behavior on Sequent.


22. The name of Informix Shared Optical library on Sequent is "iosm09a.so".
    Please refer to the "Guide to the Optical Subsystem" for more
    information about enabling optical functionality.


23. Informix Dynamic Server is supported only on DYNIX/ptx 4.4.2 or higher 
    operating system releases.  In order to assure full Y2K compliance of the
    OS, please contact Sequent Service.  Sequent Service can conduct an audit
    of the installed Sequent software components and deliver a fastpatch
    if applicable.


24. Users of this release should have these or higher versions 
    of the following packages installed on their machines:


    DYNIX/ptx(R) Base V4.4.2.4
    DYNIX/ptx(R) Public Software V4.4.2
    DYNIX/ptx(R) Encryption V4.4.2
    ptx/LAN v4.5.1
    ptx/TCP/IP V4.4.3
    ptx/NFS v4.6.2
    ptx/EFS v1.3.3
    ptx/SVM v2.0.3
    ptx/WINDOWS V4.4.1
    ptx/WINDOWS Contributed V4.4.1
    ptx/C++ v5.0.11 
    ptx/AGENT V1.3.1
    ptx/AGENT SDK V1.3.1


25. Communications Support Service using Communications Support Module (CSM) 
    with  Simple-Password is supported in this release. The name of the
    Informix Shared library for Simple Password CSM is libixspw.so 


26. The following is a  known problem:


    Bug Number: 93784


    Due to a Sequent compiler problem, when a program dynamically loads
    two shared libraries with identical global variable or function names,
    memory corruption may occur.  The second library inherits the
    global symbols from the first library.  The workaround is to build
    shared libraries that will be dynamically loaded with the -Bsymbolic
    flag in addition to the -G flag.  A warning message such as "Warning:
    Symbol referencing errors" may appear while linking, this may be ignored.


    Informix recommends that all shared libraries dynamically loaded
    by oninit, such as blade shared libraries, be built with the -Bsymbolic
    and -G flags, in addition to other flags needed by the application.
 
    This restriction will be removed when we receive a fix from Sequent.


27. The following is the list of bugs fixed in this release
        1) Bug Number: 129054


        Short Description
        -----------------
        ENGINE ASSERT FAILURE DURING ALTER TABLE ADD CONSTRAINT PRIMARY
        OR FOREIGN KEY STATEMENTS