


  Informix Online Documentation
  ------------------------------------------------------------------------
Licensed Materials - Property of IBM
"Restricted Materials of IBM"

IBM Informix Client SDK 2.81
 Copyright IBM Corporation 2002 All rights reserved.
  ------------------------------------------------------------------------
                             RELEASE NOTES FOR
                          IBM Informix Client SDK
                              Date: 3/2003
                               Version: 2.81
  ------------------------------------------------------------------------

Table of Contents

  I. Overview
 II. Configuration Requirements
III. Client Server Testing
 IV. Client API Component & Versions
  V. Example Files
 VI. Known Problems
VII. CSDK Install on Windows with ISWI2.0
VIII.New Features
 IX. Connectivity Protocols




  ------------------------------------------------------------------------

 I. Overview

The purpose of these release notes is to make you aware of any special
actions required to configure and use the Client SDK products on your
computer. This file also describes new features and feature differences
from earlier versions of this product and other Informix products, and how
these differences affect current products. In addition, this file contains
information about known bugs and their workarounds.
This release notes document is not intended to be all-inclusive; it should
be used as an addendum to the product manuals which provide thorough
information about product features and behavior.
These release notes are written for the following audience:

   +  System administrators who install IBM Informix database servers
   +  Database administrators who control access to IBM Informix databases
   +  Developers who write applications using Client SDK, Version 2.81

You will find release notes for products available as part of the Client
SDK Version 2.81 release in the following files:





            Filenames                             Product
 CPPREL.HTML, CPPREL.TXT        IBM Informix-Object Interface for C++
 ESQLCREL.HTML, ESQLCREL.TXT    IBM Informix ESQL/C
 GLSAPIREL.HTML, GLSAPIREL.TXT  IBM Informix GLS
 INFODBCREL.HTML, INFODBCREL.TXTIBM Informix ODBC Driver
 DEFECTS.HTML, DEFECTS.TXT      Fixed and Known Defects for all CSDK
                                components

  ------------------------------------------------------------------------

 II. Configuration Requirements

   * Client SDK and IConnect which are bundled with ISWI 2.0, will
     successfully install in a directory of upto 215 characters.
   * You must not install the 32-bit version and the 64-bit version of the
     Client SDK in the same INFORMIXDIR .

  ------------------------------------------------------------------------

 III. Client-Server Testing

The Client SDK Version 2.81 products have been tested with the following
database servers:

   +  Informix Dynamic Server, Version 5.20
   +  Informix Dynamic Server, Versions 7.3x
   +  Informix Dynamic Server with Advanced Decision Support and Extended
     Parallel Options, Version 8.3x and Informix Extended Parallel Server,
     Version 8.4x
   +  Informix Dynamic Server 2000, Versions  9.3x and 9.4x
   +  INFORMIX -SE Version 7.25

  ------------------------------------------------------------------------

 IV.  Client API Component & Versions

 Component                    Version
 ESQL/C                       9.53
 ODBC driver  (formerly CLI)  3.82
 OLE-DB (Only On Windows)     2.81
 Object Interface for C++
 (LIBC++)                     2.84
 Client LIBMI  (LIBDMI)       2.43
 Setnet32 (Only On Windows)   9.53
 GLS                          4.00

  ------------------------------------------------------------------------

 V. Example Files

Some of the Client  SDK files, such as  ESQL/C ,  ODBC and OLEDB , include
example files. See the release notes for each Client  SDK product to find
the location of example files for that product.
  ------------------------------------------------------------------------

 VI. Known Problems

This section describes the known problems with this release of the Client
SDK and shows how to work around these problems. See individual product
release notes for problems that are specific to each product.

A. Bug #123969

PRODUCTS ON WINDOWS PLATFORMS WILL USE ENVIRONMENT VARIABLE SETTINGS AT A
HIGHER PRECEDENCE THAN THE CURRENT USER'S REGISTRY OR THE INETLOGIN STRUCT
Workaround :
For Win32 client, do not set Informix specific environment variables in the
Windows OS environment. If these variables are set in the OS environment,
your applications will not be able to override them. In other words, your
applications will not be able to use the values you specified using the
setnet32 utility or set via calls to ifx_putenv(); these values will be
picked up from the OS environment instead.



B. Using ESQL/C Libraries

In the following notes, I-CONNECT 2.81 refers to the conn.tar file in the
Client  SDK Version 2.8 bundle, and ClientSDK 2.81 refers to the csdk.tar
file in the Client  SDK 2.8 bundle.

  1.  If I-CONNECT Version 2.81 is NOT installed on top of an existing
     Version 7.2x  ESQL/C installation:

   +  Both "installconn" and "installconn -u" will install 2.81 I-CONNECT
     exactly the same as the current I-CONNECT "installconn". The -u option
     is only available on  UNIX. Windows  NT  ESQL/C does not need this
     option.
   +  Any existing Version 7.2x  UNIX  ESQL/C (and Version 7.23 Windows
     NT  ESQL/C) applications can use this installed I-CONNECT without
     relinking or recompilation. If recompilation is not performed, only
     Version 7.2x level functionality and some bug fixes will be available.

To recompile and get new functionality, you need the development version of
the product (CSDK 2.81 tar file).

  1.  If I-CONNECT Version 2.81 is installed on top of an existing Version
     7.2x  ESQL/C installation:

   +  "installconn" will install 9.53  ESQL/C shared libraries, and either
     KEEP the 7.2x shared libraries or REPLACE them with the 9.52 ones. The
     script "installconn" will ask you whether you want to overwrite the
     existing shared libraries or not. If the existing shared libraries are
     chosen NOT to be overwritten, then:
        o  Existing 7.2x applications will continue to use the existing
          7.2x shared libraries.
        o  Existing 9.1x applications can use the 9.53 shared libraries. If
          the existing shared libraries are overwritten, then the effect is
          the same as the effect caused by replacing 7.2x shared libraries
          with 9.53 shared libraries (see next bullet).
   +  "installconn -u" will install Version 9.53  UNIX  ESQL/C shared
     libraries and REPLACE 7.2x shared libraries with the 9.52 shared
     libraries. (Actually, only the links are updated.)

Both existing 7.2x (and 9.1x) applications will then use the Version 9.53
shared libraries, and they should all work correctly. (The 7.2x shared
libraries will not be accessible by the ESQL/C preprocessor.) No relinking
or recompilation is required. However, only 7.2x level functionality and
some bug fixes will be available if a 7.2x application is not recompiled.

  1.  Installing ClientSDK Version 2.81 with  ESQL/C Libraries

   +  If ClientSDK Version 2.81 is installed on top of an existing Version
     7.2x  ESQL/C installation, it will always REPLACE Version 7.2x shared
     libraries with the Version 9.53 shared libraries. If you intend to
     continue using the Version 7.2x  ESQL/C preprocessor or shared
     libraries, ClientSDK Version 2.81 should be installed in a separate
     directory.
   +  Regardless of whether ClientSDK Version 2.81 is installed on top of an
     existing Version 7.2x  ESQL/C or not, an existing Version 7.2x
     application CAN use the Version 9.53  ESQL/C shared libraries in this
     installation without relinking or recompilation.

  1.  In order to recompile Version 7.2x applications with 9.53  ESQL/C,
     customers need to install ClientSDK Version 2.81. The command
     "installclientsdk" is used to install clientsdk product that contain
     9.53  ESQL/C (and other client products). Like the current
     "installesql", "installclientsdk" will overwrite all files in an
     existing Version 7.2x  ESQL/C installation. There is no -u option for
     installclientsdk.

C. Microsoft .Net Issues
   Known Issues with OleDb .NET bridge
In a .NET application, when calling stored procedures that take no parameters, 
the OledbCommand attribute "CommandType" does not function as expected.
This is due to the requirement of Informix servers to have parentheses as part
of the syntax of the stored procedure even if there are no parameters. In order
to work around this use the OledbCommand's commandText attribute to build
your own string for the stored procedure call before calliing the Executexxx 
methods of the command interface.

  Known Issues with Odbc .NET bridge
In a .NET application, when calling stored procedures , the OdbcCommand attribute
"CommandType" does not function as required. In order to work around this use the 
OdbcCommand's commandText attribute to build your own string for the stored
procedure call before calliing the Executexxx methods of the command interface.

  ------------------------------------------------------------------------

 VII. CSDK Installation on windows with ISWI2.0

MsiExec and Installation Properties

Windows Installer Installation,repair,and uninstallation can be activated
from the Command line using the utility MsiExec with appropriate
command-line options.MsiExec is a part of Windows 2000, and InstMsi
Installs

MsiExec into <SystemFolder> on other Systems.

For example, here are some common installer actions and ther corresponding
command-
line options.

Install:                                     Msiexec.exe  /i
D:\Example.msi
Uninstall:                                 MsiExec.exe  /x   D:\Example.msi

Install to Network:                  MsiExec.exe  /a   D:\Example.msi
Repair:                                    MsiExec.exe  /f
D:\Example.msi
Advertise (to machine):          MsiExec.exe  /jm  D:\Example.msi
Advertise ( to current user):   MsiExec.exe  /ju   D:\Example.msi

MsiExec also accepts a product code instead of a path to an MSI Package.

public properties (those with upper-case names) of an installation program
can be set at the command line. For example, the default user and company
names displayed in the Identification panel of an installation are taken
from the target system's registry and stored in the public installer
properties USERNAME and COMPANYNAME. To set the user and company names at
the command line, we enter a command similar to the following. (Note that
property names are case-sensitive, and that we enclose a property value in
quotation marks if the value contains any spaces.)

MsiExec.exe  /i   <.msi file path name>   USERNAME=Default
COMPANYNAME="<company name"

Similarly user can specify an alternative value for INSTALLDIR on the
command line

MsiExec.exe  /i  <.msi file path name>  INSTALLDIR="<NewLocation path>"

An administration can prevent a product from being uninstalled by setting
the ARPNOREMOVE property  to 1 at the command line.Similarly, setting
ARPNOMODIFY to 1 prevents users from modifying installed files, and setting
ARPNOREPAIR  to  1 disables the Repair button in the Windows 2000
Add/Remove Programs Control panel applet.

Silent Installation

Refer Informix Client Products Installation Guide for Unix,Linux And
Windows from the url



http://www.informix.com/answers/english/docs/25sdk/6638.pdf on page 2-9.

Logging :-
=======

We can create a log file at setup runtime using the /L argument to MsiExec.
For example to store all error and warning messages in a text log file, we
can use the following command line, which passes the e and w arguments to
/L

MsiExec.exe  /i  "<.Msi file path name"   /Lew  D:\install.log

To log every action performed by the setup program,the command is

MsiExec.exe  /i  ".Msi file path name"  /L*v  D:\install.log

Note:- By default, MsiExec creates a log file in a users' Temp folder only
if an error occurs.

Advertise Installation

Refer Informix Client Products Installation Guide for Unix,Linux And
Windows from the url



http://www.informix.com/answers/english/docs/25sdk/6638.pdf on page no 2-10

Uninstallation of Client SDK

Refer Informix Client Products Installation Guide for Unix,Linux And
Windows from the url
http://www.informix.com/answers/english/docs/25sdk/6638.pdf on page 2-11

Uninstallation of Client SDK from Command line

Refer Informix Client Products Installation Guide for Unix,Linux And
Windows from the url



http://www.informix.com/answers/english/docs/25sdk/6638.pdf on page 2-12

Modify the Installation

Refer Informix Client Products Installation Guide for Unix,Linux And
Windows from the url
http://www.informix.com/answers/english/docs/25sdk/6638.pdf on page 2-12

Repair the Installation

Refer Informix Client Products Installation Guide for Unix,Linux And
Windows from the url



http://www.informix.com/answers/english/docs/25sdk/6638.pdf on page 2-13

  ------------------------------------------------------------------------

 VIII. New Features

For information about the content of this release, refer to the release
notes and documentation notes for each of the Client SDK products.
ODBC 3.82, OLEDB 2.81, ESQL/C 9.53, LIBC++ 2.83, LIBDMI 2.43

 A. Security Enhancement
CSDK2.81 with version 9.40 of Dynamic Server supports encrypting data 
transmissions over the network using the encryption communication support
 module (ENCCSM). This option provides complete data encryption with the 
openSSL library, with many configurable options. A message authentication
code (MAC) will be transmitted as part of the encrypted data transmission
to ensure data integrity. A MAC is an encrypted message digest. The 
encryption algorithms use openSSL 0.9.6 as the code base. Distributed 
queries can also be encrypted. 

The currently-supported ciphers are:
des  DES (64-bit key)
bf-1 Blow Fish (64-bit key)
des3 Triple DES
bf-2 Blow Fish (128-bit key)
desx Extended DES (128-bit key)
bf-3 Blow Fish (192-bit key)

Important: The cipher desx can only be used in cbc mode. 
Current supported modes are: 
* ecb - Electronic Code Book 
* cbc - Cipher Block Chaining
* ocb - Cipher Feedback
* ofb - Output Feedback

Because ECB mode is considered weak, it is only included if specifically 
requested. It is not included in the all or the allbut list. 

For more information on encryption, see the IBM Informix Dynamic Server
Administrator's Guide.   

B. Installation Enhancements

The following enhancements have been made to the files used in installation
on UNIX systems. 

1. More Recent Client and GLS Files Are Not Overwritten.The installation 
program on UNIX prompts the user to avoid overwriting existing client or
GLS files that are more recent than those included with the database server. 

2. Serial Number and Key are No Longer Needed
The installation program no longer prompts for a serial number and key. 

C. GLS Enhancements

ClientSDK Version 2.81 uses Version 4.0 of the GLS library, which supports
 important new features for databases that do not use the default locale. 

1. Support for Session-Level Non-Default Collation

For information on the new collation order feature, Please see 
ESQL/C 9.53 release notes. 

2. Support for Unicode

The Clientsdk now supports Unicode 3.1.1 code points for multilingual data
via the environment variable GL_USEGLU. By default, that is without 
setting GL_USEGLU, Unicode and GB18030-2000 are supported using Informix
 locales.In Client SDK version 2.81, Unicode and GB18030-2000 can also be 
supported through ICU (International Components for Unicode) by setting 
the GL_USEGLU environment variable to 1 before starting Dynamic Server. 
Using Unicode and GB18030-2000 from ICU have at least the following benefits: 
* Unicode 3.1.1 support instead of Unicode 3.01 supported traditional 
Informix locales
* Better Unicode collation support instead of only codepoints ordering 
in traditional Informix locales
For more information about ICU, refer to the ICU website 
at: http://oss.software.ibm.com/icu/. 
On Windows, GL_USEGLU can also be set in setnet32 for client applications,
including the IBM-Informix ODBC driver. 
Note: When the database locale codeset is UTF8, the database and client 
applications must have GL_USEGLU set to the same value. Otherwise, the 
client cannot connect. 

The use of GLU is turned off, by default and GLS will use the locale files
for Unicode and GB18030-2000.  The primary reason for this is that C++ linker
is required in order to use ICU.  This will have a wide impact on the 
existing and new applications.  Every existing application will have to 
be re-linked using C++ and all new applications will require a C++ linker.  
Turning GLU off by default mitigates this condition.

3. Support for Unicode Collation

The GLS library now supports the Unicode Collation Algorithm that was 
developed by the Unicode consortium. This de facto standard for 
multinational applications incorporates ICU technology. 

4. Full Support for Chinese GB18030-2000 Locale
The previous release of the Dynamic Server supported the code points 
within the Basic Multilingual Plane (BMP) of Unicode. This release now 
supports the GL18030-2000 codepoints based on Unicode 3.1.1 standard 
with the GL_USEGLU environment variable. 
  
D. Ole DB consumers can use the Describe Parameter feature (also known as 
Dynamic query extension) by a call to GetParameterInfo method in the
ICommandWithParameters interface of the Command class. The method will 
providethe the parameter information that it is able to derive from the
 IBM Informix it is connecting to.
Note:
In case SetParameterInfo has been called for atleast one parameter, 
GetParameterInfo will return only for those parameters for which 
SetParameterInfo has been called. GetParameter will not return the 
parameter information for the remaining parameters even if it can derive
it from the server.


E. ODBC users can make use of Describe input parameters feature (also known as
Dynamic query extension) by calling SQLDescribeParam(). This is useful to
derive the metadata of parameters after a call to SQLPrepare(). The other
ways of getting the parameter information are: SQLGetDescField and
SQLGetDescRec when the IPD is automatically populated after SQLPrepare().
In other words, when an application enables SQL_ATTR_ENABLE_AUTO_IPD attribute 
of a statement handle.
While SQLDescribeParam() was introduced in the earlier versions of our driver
(with a minimal support), this release has complete support for this function
with a dependency of server support. For more details and limitations of this
feature, please refer to the release notes of IBM Informix Dynamic server 9.40.


F.ODBC/Ole DB - Support for SQL 99 Joins

The SQL 99 Joins feature extends support for SQL joins within &
outside an escape sequence. This feature requires IDS server side support for 
"SQL 99 joins", hence it will work only with IDS version 9.4 or above.


G. ODBC/Ole DB - Support for 32k Lvarchar

The 32k Lvarchar feature extends the ability of lvarchar columns to hold upto 
32k bytes of data. This feature requires IDS server side support for "32k
 Lvarchar", hence it will work only with IDS version 9.4 or above.


H. ESQL/C - New Environment Variables

1.  IFX_PAD_VARCHAR   when the environment variable set to 1, the client
    sends varchar datatype with padded trailing spaces. When this environment 
    is not set(default)the client sends varchar datatype valuewithout trailing.
    This environment IFX_PAD_VARCHAR  needs to set only at the client side and 
    it is supported only with IBM Informix ESQL/C Version 9.53 or above and 
    IBM Informix Dynamic Server Version 9.40 or above.

2.  BIG_FET_BUF_SIZE   This is an enhancement of FET_BUF_SIZE  to support 
    cursor buffers  greater than 32,769 but less than or equal to 4MB. This
    environment is supported only for XPS servers starting from Version 
    8.40.UC1.

3.  BLANK_STRINGS_NOT_NULL  when this environment is set to 1 the string host 
    variable stores an empty string as a single blank followed by a null 
    terminator, without environment setting, string host variable stores an 
    empty string as null.  This environment BLANK_STRINGS_NOT_NULL  is mainly 
    provided to support backward compatibility for 7x against  string host 
    variables and  needs to be set only at client side.
 

 IX. Connectivity Protocols

--------------------------------------------------------------------------------
|Platform/OS|   BSTP   |   IPSP   |   IPSM   |   TLTP   |   TLIX   |   MAXC    |
|-----------|----------|----------|----------|----------|----------|-----------|
|Solaris-32 |          |onipcstr  |onipcshm  |ontlitcp  |ontlispx  |ontliimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|Solaris-64 |          |onipcstr  |onipcshm  |ontlitcp  |          |ontliimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|IRIX-32    |onsoctcp  |onipcstr  |onipcshm  |          |          |onsocimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|IRIX-64    |onsoctcp  |onipcstr  |onipcshm  |          |          |onsocimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|Decalpha   |onsoctcp  |onipcstr  |onipcshm  |          |          |onsocimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|HPUX-32    |onsoctcp  |onipcstr  |onipcshm  |          |          |onsocimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|HPUX-64    |onsoctcp  |onipcstr  |onipcshm  |          |          |onsocimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|AIX-32     |onsoctcp  |onipcstr  |onipcshm  |          |          |onsocimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|AIX-64     |onsoctcp  |onipcstr  |onipcshm  |          |          |onsocimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|Linux      |onsoctcp  |          |onipcshm  |          |          |onsocimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|Sequent    |          |onipcstr  |onipcshm  |ontlitcp  |          |ontliimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|Unixware   |          |          |onipcshm  |ontlitcp  |ontlispx  |ontliimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|SCO        |          |          |onipcshm  |ontlitcp  |ontlispx  |           |
|-----------|----------|----------|----------|----------|----------|-----------|
|Sinix-32   |onsoctcp  |onipcstr  |onipcshm  |ontlitcp  |          |ontliimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|Sinix-64   |onsoctcp  |onipcstr  |onipcshm  |ontlitcp  |          |ontliimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|DG-Intel   |          |onipcstr  |onipcshm  |ontlitcp  |          |onsocimc   |
|-----------|----------|----------|----------|----------|----------|-----------|
|Fujitsu    |onsoctcp  |          |onipcshm  |ontlitcp  |          |           |
|-----------|----------|----------|----------|----------|----------|-----------|
|NEC        |          |          |onipcshm  |ontlitcp  |          |           |
|-----------|----------|----------|----------|----------|----------|-----------|
|NCR        |          |onipcstr  |onipcshm  |ontlitcp  |          |ontliimc   |
--------------------------------------------------------------------------------
   BSTP - Berkeley sockets using TCP/IP          IPSP - IPC using stream pipe
   IPSM - IPC using shared memory                TLTP - TLI using TCP/IP
   TLIX - TLI using IPX/SPX                      MAXC - MaxConnect

Notes:
------
-  If you are using 64bit servers:

   Remote 32-bit applications/tools (example: ESQL/C, 4GL, ISQL) can only
   connect to the IBM Informix Dynamic Server using the TCP/IP protocol.
   Local 32-bit applications/tools can connect to the 64-bit server using
   either TCP/IP protocols or IPC stream pipe protocols.
   Local 32-bit applications/tools cannot connect to the 64-bit server
   using IPC shared memory protocol.

-  If you are using a NUMA system and have several IP addresses configured
   on the same physical interface:

   The IBM Informix TCP listener thread binds to a particular IP address/port.
   It listens for incoming calls addressed to only one IP address.  If there are
   multiple IP addresses configured on the system, a TLI client will not be able
   to connect to the server. (If DNS is configured to resolve the hostname on a
   rotary of the four IP addresses,  you do not know which of those addresses
   has been selected by the IBM Informix TCP listener).
   The solution is that in the \$INFORMIXDIR/etc/sqlhosts file, use "*hostname"
   instead of "hostname".  It will make the IBM Informix TCP listener bind to
   INADDR_ANY instead of a particular address.

- For any additional information, Please contact Technical Support or refer
  IBM Informix Dynamic Server machine notes.





  ------------------------------------------------------------------------
 Copyright IBM Corporation 2003 All rights reserved
