5.1. OpenLink ODBC Driver for Informix (Express Edition) for Mac OS X

5.1.1. Installation Guide

The OpenLink ODBC Driver for Informix (Express Edition) is distributed as a Disk image (DMG) file. Simply double click on the disk image 'mul6efrb.dmg' to extract the installer mpkg file:

Figure 5.1. ee-inf-00.png

ee-inf-00.png

Double-click on the mpkg file to run the installer and following the on screen instriuction as indicated below to complete the installation:

Figure 5.2. ee-inf-01.png

ee-inf-01.png

Installer Welcome Dialog for the OpenLink ODBC Driver for Informix (Express Edition):

Figure 5.3. ee-inf-02.png

ee-inf-02.png

Please review the readme file for installation requirements and known issues:

Figure 5.4. ee-inf-03.png

ee-inf-03.png

Please read the software license agreement before continuing your installation:

Figure 5.5. ee-inf-04.png

ee-inf-04.png

Select destination volume for driver installation:

Figure 5.6. ee-inf-05.png

ee-inf-05.png

Choose to perform a custome or default installation of the driver:

Figure 5.7. ee-inf-06.png

ee-inf-06.png

If you chose the custom option select which of the components below are to be installed:

Figure 5.8. ee-inf-07.png

ee-inf-07.png

The Software must be installed as a user with Administrative privileges on the machine:

Figure 5.9. ee-inf-08.png

ee-inf-08.png

After the driver has been installed you will be prompted for a license file. If a license file already exists on the machine then select the 'use exisiting file' option. A trial (try) or full (buy) license can be obtain by selecting the 'try and buy' option which loads our online try and buy web page:

Figure 5.10. ee-inf-09.png

ee-inf-09.png

To obtain the trial license you must be a registered user on the OpenLink Web site and login with the username (e-mail address) and password for that user. Click on the 'Shop' link to visit our online shop cart to purchases a full license if required:

Figure 5.11. ee-inf-10.png

ee-inf-10.png

Click on the 'download license' button to obtain the license file immediately and save to your desktop. Alternatively an auto e-mail will be sent to the registered users e-mail address with a link to their OpenLink Data Space (ODS) where all trial and full license files will be stored in the Briefcase for download at a later date.

Figure 5.12. ee-inf-11.png

ee-inf-11.png

Select the license file to be used for the installation:

Figure 5.13. ee-inf-12.png

ee-inf-12.png

Installation is complete:

Figure 5.14. ee-inf-13.png

ee-inf-13.png

5.1.2.  Configuration

To configure an ODBC DSN, run the OpenLink iODBC Administrator located in the /Applications/iODBC folder:

Figure 5.15. ee-inf-14.png

ee-inf-14.png

Click on the `add' button to Choose the ODBC Driver the DSN should be created for:

Figure 5.16. ee-inf-15.png

ee-inf-15.png

Choose the OpenLink Informix Driver (Express Edition) v6.0 from the list of available drivers:

Figure 5.17. ee-inf-16.png

ee-inf-16.png

In the Data Source tab, select a suitable DSN name and optional description for the Data Source to be created:

Figure 5.18. ee-inf-17.png

ee-inf-17.png

The Connection Tab request the minimum paramters required to make a connection to the target database:

Figure 5.19. ee-inf-18.png

ee-inf-18.png

  • Host - the hostname of the server on which Informix is running

  • Port - the port on which the Informix instance listens

  • Database - the name of a valid database

  • Database Server - the name of the Informix Server running on a given Host

  • Username - the name of a valid Informix user

  • Advanced - additional optional configuration parameters:

Table 5.1. 

IfxPORTNO_SECONDARY Specifies the port number of the secondary database server in an HDR pair. The port number is listed in the /etc/services file.
IfxIFXHOST_SECONDARY Sets the secondary host name or host IP address for HDR connection redirection
IfxINFORMIXSERVER_SECONDARY Specifies the secondary database server in an HDR pair to which an explicit or implicit connection is made by a client application if the primary database server is unavailable
IfxENABLE_HDRSWITCH When set to 'true', secondary server properties are used to connect to the secondary server in an HDR pair, if the primary server is unavailable.
IfxJDBCTEMP Specifies where temporary files for handling smart large objects are created. You must supply an absolute pathname.
IfxSECURITY Uses 56-bit encryption to send the password to the server. If 'PASSWORD' is specified, the user-provided password is encrypted using 56-bit encryption when it is passed from the client to the database server. There is no default setting. The setting is supported in the 7.31, 8.3 and later, and 9.x and later versions of the Informix database server.
IfxPROXY Specifies an HTTP proxy server.
IfxSQLH_TYPE When set to 'FILE', specifies that database information (such as host-name, port-number, user, and password) is specified in an sqlhosts file. When set to 'LDAP', specifies that this information is specified in an LDAP server
IfxSQLH_FILE Example:http://host-name:port-number/sqlhosts.ius file://D:/local/myown/sqlhosts.ius
IfxLDAP_URL Example: ldap://host-name:port-number
IfxLDAP_IFXBASE Example: Informix-base-DN
IfxLDAP_USER  
IfxLDAP_PASSWD  
IfxSQLH_LOC  
IfxFET_BUF_SIZE Overrides the default setting for the size of the fetch buffer for all data except large objects. The default size is 4096 bytes.
IfxBIG_FET_BUF_SIZE In IBM Informix Extended Parallel Server, Version 8.4, overrides the default size of the tuple buffer and allows it to be increased up to 2GB.
IfxUSEV5SERVER When set to 1, specifies that the Java program is connecting to an IBM Informix OnLine 5.x or IBM Informix SE 5.x or IBM Informix SE 7.x database server. This environment variable is mandatory if you are connecting to an IBM Informix OnLine 5.x or IBM Informix SE 5.x or IBM Informix SE 7.x database server.
IfxLOBCACHE Determines the buffer size for large object data that is fetched from the database server Possible values are: v A number greater than 0. The maximum number of bytes is allocated in memory to hold the data. If the data size exceeds the LOBCACHE value, the data is stored in a temporary file; if a security violation occurs during creation of this file, the data is stored in memory. v Zero (0). The data is always stored in a file. If a security violation occurs, the driver makes no attempt to store the data in memory. v A negative number. The data is always stored in memory. If the required amount of memory is not available, an error occurs.
IfxIFX_USEPUT When set to 1, enables bulk inserts.
IfxDELIMIDENT When set to true, specifies that strings set off by double quotes are delimited identifiers
IfxINFORMIXSTACKSIZE Specifies the stack size, in kilobytes, that the database server uses for a particular client session
IfxDBSPACETEMP Specifies the dbspaces in which temporary tables are built
IfxDB_LOCALE Specifies the locale of the databaseIBM Informix JDBC Driver uses this variable to perform code-set conversion between Unicode and the database locale. Together with the CLIENT_LOCALE variable, the database server uses this variable to establish the server processing locale. The DB_LOCALE and CLIENT_LOCALE values must be the same, or their code sets must be convertible.
IfxCLIENT_LOCALE Specifies the locale of the client that is accessing the database Provides defaults for user-defined formats such as the GL_DATE format User-defined data types can use it for code-set conversion. Together with the DB_LOCALE variable, the database server uses this variable to establish the server processing locale. The DB_LOCALE and CLIENT_LOCALE values must be the same, or their code sets must be convertible.
IfxDBDATE Specifies the end-user formats of values in DATE columns Supported for backward compatibility; GL_DATE is preferred.
IfxGL_DATE Specifies the end-user formats of values in DATE columns This variable is supported in Informix database server versions 7.2x, 8.x, 9.x, and 10.x.
IfxDBCENTURY Enables you to specify the appropriate expansion for one- or two-digit year DATE values
IfxSTMT_CACHE When set to 1, enables the use of the shared-statement cache in a session. This feature can reduce memory consumption and speed query processing among different user sessions. The driver does not use this variable; it just passes the value to the server.
IfxNODEFDAC When set to YES, prevents default table and routine privileges from being granted to the PUBLIC user when a new table or routine is created in a database that is not ANSI compliant. Default is NO.
IfxDBTEMP Specifies the full pathname of the directory into which you want IBM Informix Enterprise Gateway products to place their temporary files and temporary tables. The driver does not use this variable; it just passes the value to the server.
IfxPSORT_DBTEMP Specifies one or more directories to which the database server writes the temporary files it uses when performing a sort
IfxPSORT_NPROCS Enables the database server to improve the performance of the parallel-process sorting package by allocating more threads for sorting
IfxDBUPSPACE Specifies the amount of system disk space that the UPDATE STATISTICS statement can use when it simultaneously constructs multiple-column distributions
IfxPDQPRIORITY Determines the degree of parallelism used by the database server
IfxIFX_DIRECTIVES Determines whether the optimizer allows query optimization directives from within a query. This variable is set on the client. The driver does not use this variable; it just passes the value to the server.
IfxIFX_EXTDIRECTIVES Specifies whether the query optimizer allows external query optimization directives from the sysdirectives system catalog table to be applied to queries in existing applications. The default is OFF. Possible values: ON External optimizer directives accepted OFF External optimizer directives not accepted 1 External optimizer directives accepted 0 External optimizer directives not accepted
IfxOPTCOMPIND Specifies the join method that the query optimizer uses
IfxINFORMIXCONRETRY Specifies the maximum number of additional connection attempts that can be made to each database server by the client during the time limit specified by the value of INFORMIXCONTIME
IfxINFORMIXCONTIME Sets the timeout period for an attempt to connect to the database server. If a connection attempt does not succeed in this time, the attempt is aborted and a connection error is reported. The default value is 0 seconds. This variable adds timeouts for blocking socket methods and for socket connections.
IfxINFORMIXOPCACHE Specifies the size of the memory cache for the staging-area blobspace of the client application
IfxPLCONFIG Specifies the name of the configuration file used by the high-performance loader
IfxPATH Specifies the directories that should be searched for executable programs
IfxPLOAD_LO_PATH Specifies the pathname for smart-large-object handles (which identify the location of smart large objects such as BLOB, CLOB, and BOOLEAN data types). The driver does not use this variable; it just passes the value to the server.
IfxOPT_GOAL Specifies the query performance goal for the optimizer. Set this variable in the user environment before you start an application. The driver does not use this variable; it just passes the value to the server.
IfxDBANSIWARN When set to 1, checks for Informix extensions to ANSI-standard syntax
IfxIFX_CODESETLOB The value of this variable determines whether code-set conversion is done in memory in or in temporary files. If set to 0, code-set conversion uses temporary files. If set to a value greater than 0, code-set conversion occurs in the memory of the client computer, and the value represents the number of bytes of memory allocated for the conversion.
IfxIFX_LOCK_MODE_WAIT The default value is 0 (do not wait for the lock). Sets the value of Informix-specific variable IFX_LOCK_MODE_WAIT. Possible values: '-1' WAIT until the lock is released. '0' DO NOT WAIT, end the operation, and return with error. 'nn' WAIT for nn seconds for the lock to be released.
IfxIFX_ISOLATION_LEVEL Sets the value of Informix-specific variable IFX_ISOLATION_LEVEL. Possible values: '1' - Dirty Read (equivalent to TRANSACTION_READ_UNCOMMITTED), '2' - Committed Read (equivalent to TRANSACTION_READ_COMMITTED), '3' - Cursor Stability (equivalent to TRANSACTION_READ_COMMITTED), '4' - Repeatable Read (equivalent to TRANSACTION_REPEATABLE_READ)

As indicated above the paramters of the options and preferences tabs are not required for a basic connection:

Figure 5.20. ee-inf-19.png

ee-inf-19.png

  • Row Buffer Size - This attribute specifies the number of records to be transported over the network in a single network hop. Values can range from 1 to 99.

  • Hide Login Dialog - Suppress the ODBC "Username" and "Password" login dialog box when interacting with your ODBC DSN from within an ODBC-compliant application.

  • Read-only connection - Specify whether the connection is to be read-only. Make sure the checkbox is unchecked to request a read/write connection.

  • Drop Catalog from Meta calls - Enable this option to have the catalog name not appear for tables, views and procedures when requesting database meta-data.

  • Drop Schema from Meta calls - Enable this option to have the schema-name not appear for tables, views and procedures when requesting database meta-data.

  • SQLStatistics disabled - Check this box to have SQLStatistics() return an empty resultset. Use this if the underlying database does not support retrieving statistics about a table (e.g. what indexes there are on it).

  • No support of quoted identifier - If it is set, the call SQLGetInfo for 'SQL_IDENTIFIER_QUOTE_CHAR' will return the space (" "). It can be used if DBMS doesn't support quoted SQL such as select * from "account"

  • No support of search string escape - If it is set, the call SQLGetInfo() for 'SQL_LIKE_ESCAPE_CLAUSE' will return the space (" "). It can be used if DBMS doesn't support SQL escape patterns

  • Patch of NULL size of SQL_CHAR - If set this option overrides the size of SQL_CHAR column type returned by the database with the value set in the text box (in bytes). With the default value of 0 the driver uses the size returned by the database.

  • SQL_DBMS Name - Manually override the SQLGetInfo(SQL_DBMS_NAME) response returned by the driver. This is know to be required for products like Microsoft InfoPath for which the return the value should be "SQL Server".

Figure 5.21. ee-inf-20.png

ee-inf-20.png

  • Initialization SQL - Lets you specify a file containing SQL statements that will be run against the database upon connection, automatically.

  • Cursor Sensitivity - Enables or disables the row version cache used with dynamic cursors. When dynamic cursor sensitivity is set high, the Cursor Library calculates checksums for each row in the current rowset and compares these with the checksums (if any) already stored in the row version cache for the same rows when fetched previously. If the checksums differ for a row, the row has been updated since it was last fetched and the row status flag is set to SQL_ROW_UPDATED. The row version cache is then updated with the latest checksums for the rowset. From the user's point of view, the only visible difference between the two sensitivity settings is that a row status flag can never be set to SQL_ROW_UPDATED when the cursor sensitivity is low. (The row status is instead displayed as SQL_ROW_SUCCESS.) In all other respects, performance aside, the two settings are the same - deleted rows don't appear in the rowset, updates to the row since the row was last fetched are reflected in the row data, and inserted rows appear in the rowset if their keys fall within the span of the rowset. If your application does not need to detect the row status SQL_ROW_UPDATED, you should leave the 'High Cursor Sensitivity' checkbox unchecked, as performance is improved. The calculation and comparison of checksums for each row fetched carries an overhead. If this option is enabled, the table oplrvc must have been created beforehand using the appropriate script for the target database.

  • MaxRows Override - Allows you to define a limit on the maximum number of rows to returned from a query. The default value of 0 means no limit.

  • Disable AutoCommit - Change the default commit behaviour of the OpenLink Lite Driver. The default mode is AutoCommit mode (box unchecked).

  • Disable Rowset Size Limit - Disable the limitation enforced by the cursor library. The limitation is enforced by default to prevent the Driver claiming all available memory in the event that a resultset is generated from an erroneous query is very large. The limit is normally never reached.

  • Defer fetching of long data - Defer fetching of LONG (BINARY, BLOB etc.) data unless explicitly requested in query. This provides significant performance increase when fields in query does not include LONG data fields.

  • Multiple Active Statements Emulation - Enables use of Multiple Active statements in an ODBC application even if the underlying database does not allow this, as it is emulated in the driver.

Click on the 'Test Data Source' button to make a connection to the database to verify connectivity:

Figure 5.22. ee-inf-21.png

ee-inf-21.png

Enter a vaild username and pasword for the database:

Figure 5.23. ee-inf-22.png

ee-inf-22.png

A successful connection to the database has been made:

Figure 5.24. ee-inf-23.png

ee-inf-23.png