IBM Informix Online Documentation


Licensed Materials - Property of IBM
"Restricted Materials of IBM"

IBM Informix Client SDK 2.81
© Copyright IBM Corporation 2003 All rights reserved.


RELEASE NOTES FOR

IBM Informix-Client SDK

Date: 06/2003

Version: 2.81


 Table of Contents

  1. Overview
  2. Configuration Requirements
  3. Client Server Testing
  4. Client API Component & Versions
  5. Example Files
  6. Known Problems
  7. CSDK Install on Windows with ISWI2.0
  8. New Features

 


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:

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

IBM Informix ODBC Driver

DEFECTS.HTML, DEFECTS.TXT

Fixed and Known Defects for all CSDK components


 


II. Configuration Requirements


III. Client-Server Testing

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


IV. Client API Components & 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/CODBC 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.81 bundle, and ClientSDK 2.81 refers to the csdk.tar file in the Client  SDK 2.81 bundle.

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

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:

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
  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.84, LIBDMI 2.43

The following features are applicable for all the Clientsdk products:

 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:

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

Client SDK 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 Client SDK 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. Using Unicode and GB18030-2000 from ICU have at least the following benefits:

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 Describe Parameter feature

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 provide the 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 Describe input parameters feature

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
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 value without 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.

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.

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
.

 

 

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

 

onsocimc

Unixware

 

 

onipcshm

ontlitcp

ontlispx

onsocimc

SCO

 

 

onipcshm

ontlitcp

ontlispx

 

Sinix-32

onsoctcp

onipcstr

onipcshm

ontlitcp

 

ontliimc

Sinix-64

onsoctcp

onipcstr

onipcshm

ontlitcp

 

ontliimc

DG-Intel

 

onipcstr

onipcshm

ontlitcp

 

ontliimc

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