Installation and Configuration of the Single-Tier "Express" Edition ODBC Driver for Informix Data Sources, for Windows


Review Preinstallation Documentation: Pre-Installation Requirements




Installation

  1. The OpenLink ODBC Driver for Informix (Express Edition) is distributed as a Windows MSI installer. Double click on the installer 'ntl6einf.msi' to commence the installation:





  2. This is the Welcome dialog for the OpenLink ODBC Driver for Informix (Express Edition):





  3. Please read the Software License Agreement and accept before continuing your installation:





  4. Before installation, you will be prompted to locate a license file. If a license file already exists on the machine, then select the 'use existing file' option. A trial (try) or full (buy) license can be obtained by selecting the 'try and buy' option, which loads our online try and buy web page:





  5. 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 purchase a full license if required.
  6. Click on the 'download license' button to obtain an immediate license file and save it to your desktop. Alternatively, mail can be sent to your e-mail address with a link to your OpenLink Data Space (ODS). Here, all trial and full license files will be stored in a specialized Briefcase for download at a later date.





  7. Select the license file to be used for the installation:





  8. Choose to perform a custom, typical, or complete installation of the driver:





  9. Select the features to be installed:





  10. Click the install button to begin the installation:





  11. Installation in progress:





  12. The installation is complete and ready for use:




Configuration

  1. Launch the ODBC Administrator appropriate to the bitness (32-bit or 64-bit) of your client application and driver.





  2. Click on the Drivers tab to confirm that the driver has been successfully installed:





  3. From either the User or System DSN tab, click on the Add button and select the Express Edition Driver from the list. Select the Unicode version of the driver if and only if you are working with multi-byte character sets, as unnecessary translations can significantly affect ODBC performance:





  4. On the Data Source tab, provide a suitable DSN name and optional description for the Data Source to be created:





  5. The Connection tab requests the minimum parameters required to make a connection to the target database:





    • Host: This is the fully qualified hostname, or IP address, of the machine hosting the DBMS you wish to access, e.g., dbms-server.example.com or 192.168.155.123. Any host name, which can be resolved by your local DNS, is acceptable.
    • Port: This is the port on which Informix listens.
    • Database: This is the name of the database.
    • Database Server: This is the name of the database server.
    • Connect now to verify that all settings are correct: Will attempt to connect to the database, once you click Continue.
    • Login ID: This is a valid user for the Informix database.
    • Password: This is a valid password for the Informix database.
  6. The advanced button displays additional, optional parameters that can be configured:





    Name

    Description

    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 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 a 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 or file://D:/local/myown/sqlhosts.ius
    IfxLDAP_URL Example: ldap:host-name:port-number
    IfxLDAP_IFXBASE Example: Informix-base-DSN
    IfxLDAP_USER An LDAP username
    IfxLDAP_PASSWD An LDAP password
    IfxSQLH_LOC When used in conjunction with other LDAP keywords, the SQLH_LOC keyword indicates where an LDAP lookup should occur. SQLH_LOC can have a value of either CLIENT or PROXY. If the value is CLIENT, the driver performs the LDAP lookup on the client side. If the value is PROXY, the proxy performs the lookup on the server side. If no value is specified, the driver uses CLIENT as the default value.
    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: 1) 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. 2) 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. 3) 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 database. IBM 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)





    1. Click continue to proceed to the Options dialog. This dialog contains optional parameters that are not required for basic ODBC connectivity:





      • Drop Catalog name from DatabaseMetaData calls - Enable this option to have the catalog name not appear for tables, views, and procedures when requesting database meta-data.
      • Drop Schema name from DatabaseMetaData calls - Enable this option to have the schema-name not appear for tables, views, and procedures when requesting database meta-data.
      • Return an empty ResultSet for SQLStatistics - Check this box to have SQLStatistics() return an empty resultset. Use this if the underlying database does not support retrieval of statistics about a table (e.g. what indexes it has).
      • Disable support of quoted identifier - If set, the call SQLGetInfo for 'SQL_IDENTIFIER_QUOTE_CHAR' will return a space (" "). It can be used if the DBMS doesn't support quoted SQL like select * from "account."
      • No support of search string escape - If set, the call SQLGetInfo for 'SQL_LIKE_ESCAPE_CLAUSE' will return a space (" "). It can be used if the DBMS doesn't support SQL escape patterns.
      • Patch of null size of SQL_CHAR on - 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 a default value of 0, the driver uses the size returned by the database.
    2. Click continue to proceed to the Preferences dialog. This dialog contains optional parameters that are not required for basic ODBC connectivity:





      • Read-only connection - Specifies whether the connection is "Read-only." Make sure the checkbox is unchecked to request a "Read/Write" connection.
      • Defer fetching of long data - Defers fetching of LONG (BINARY, BLOB etc.) data unless explicitly requested in a query. This provides significant performance increases when fields in query do not include LONG data fields.
      • Disable interactive login - Suppresses the ODBC "Username" and "Password" login dialog boxes when interacting with your ODBC DSN from within an ODBC compliant application.
      • 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.
      • Max Rows Override - Allows you to define a limit on the maximum number of rows to be returned from a query. The default value of 0 means no limit.
      • Initial SQL - Lets you specify a file containing SQL statements that will be run automatically against the database upon connection.
      • Dynamic 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.
      • Enable logging to the log file - Pass a full path to an arbitrary log file that will be used to log ODBC API and SQL related errors.
    3. Click Next to set optional parameters that ensure compatibility with various applications:





      • Disable Autocommit - Changes the default commit behaviour of the OpenLink driver. The default mode is AutoCommit (box unchecked).
      • Disable Rowset Size Limit - Disables a limitation enforced by the cursor library. This limitation is enforced by default. It prevents the driver from claiming all available memory in the event that a resultset generated from an erroneous query is very large. The limit is normally never reached.
      • 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.
      • SQL_DBMS Name - Manually overrides the SQLGetInfo(SQL_DBMS_NAME) response returned by the driver. This is required for products like Microsoft InfoPath for which the return the value should be "SQL Server".
    4. Click on the Test Data Source button to verify that a successful connection can be made to the database.




    Next...