How to Install and Configure the Lite Edition ODBC Driver for Oracle, on Linux

A guide for installing the Lite Edition ODBC Driver for Oracle data sources, on Linux.

Before you install

Requirements for Oracle

What Oracle and its client software must provide before the driver connects.

Pre-Requisites for Connections to Oracle

Basic DBMS & DBMS Version Support

Database Native Client Requirements

Key Database Native Variables (Set Before OpenLink Install)

Database Native Settings You Need to Know

Database Configuration for Unicode

Database Configuration for XA Support

Do OpenLink drivers connect to Oracle?

Do OpenLink drivers connect to Oracle?

Yes. OpenLink produces data access drivers that connect to Oracle.

Oracle version support

Oracle version support

OpenLink's drivers provide support for Oracle 7 onward.

Detecting the Oracle DBMS version

Detecting the Oracle DBMS version

You may use the following steps to detect your oracle version:

1. Login to the machine which hosts your Oracle database.
2. su to your Oracle user.
3. execute your Oracle user's .profile.
4. cd to ORACLE_ HOME/bin.
5. Execute the following command: /sqplus /nolog
6. Type: connect as sysdba
7. Provide your Oracle DBA username and password.
8. Execute the startup command if the instance is not running.
9. Execute the following command: select * from V$VERSION
10. Obtain the version output..

For example:

Shell
      $ ./sqlplus /nolog
SQL*Plus: Release 10.1.0.2.0 - Production on Thu Mar 15 12:56:19 2007
Copyright (c) 1982, 2004, Oracle.  All rights reserved.
SQL> connect as sysdba
Enter user-name: scott
Enter password:
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area  289406976 bytes
Fixed Size                  1328912 bytes
Variable Size             262387952 bytes
Database Buffers           25165824 bytes
Redo Buffers                 524288 bytes
Database mounted.
Database opened.
SQL> select * from V$VERSION
2  ;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bi
PL/SQL Release 10.1.0.2.0 - Production
CORE    10.1.0.2.0      Production
TNS for IBM/AIX RISC System/6000: Version 10.1.0.2.0 - Productio
NLSRTL Version 10.1.0.2.0 - Production
Understanding the Oracle native client

Understanding the Oracle native client

The Oracle native client is an Oracle product that provides access to Oracle databases via the Oracle proprietary communications protocol. At the time of writing, this product is called Net8, Net9, or Net10 depending on the version of the database to which you want to connect. However, marketing names are subject to change.

Note: SQL*Net is the Oracle 7 database native client.

When do I need the Oracle native client?

When do I need the Oracle native client?

There are two scenarios in which you would require the Oracle native client. You must install the Oracle client on the same machine as any Oracle Single-Tier driver. Additionally, you must install the Oracle client on the same machine as OpenLink's Multi-Tier Request Broker and Oracle Database Agent, if the Broker and Oracle Agent do not reside on the same machine as the Oracle database.

Obtain the Oracle native client (a.k.a. "Net8", "Net9", "Net10")

Obtain the Oracle native client (a.k.a. "Net8", "Net9", "Net10")

OpenLink Software does not supply the Oracle native client. Instead, the Oracle native client should ship with the standard Oracle DBMS install media. At the time of writing, staff notes that the Oracle native client appears on CDs labeled as such. However, packaging and marketing labels are subject to change.

If you do not have the Oracle client install CD,you should visit www.oracle.com to see if the appropriate Oracle client version is available for download.

Configure the Oracle native client

Configure the Oracle native client

No configuration is needed, if you use Oracle's InstantClient product.

Use the following steps to configure the Oracle native client on Windows:

1. Login to the machine that contains your Oracle client software.
2. Expand the Start menu.
3. Expand the Programs menu.
4. Expand the Oracle folder.
5. Expand the Configuration and Migration Tools folder.
6. Click the Net Configuration Assistant.
7. Select Local Net Service Name.
8. Click Next.
9. Select Add.
10. Click Next.
11. Choose your Oracle version.
12. Provide your Oracle SID.
13. Click Next.
14. Select the TCP protocol.
15. Click Next.
16. Provide the hostname of the machine that hosts Oracle.
17. Insure that the correct TCP port is indicated.
18. Click Next.
19. Test your Net Service Name.
20. Click Next.
21. Provide a name for your Service Name.
22. Click Next.
23. Click No.
24. Click Next twice.
25. Click Finish.

Use the following steps to configure the Oracle native client on Unix:

1. Login to the machine that contains your Oracle database server.
2. cd into the $ORACLE_ HOME/network/admin directory.
3. vi tnsnames.ora.
4. Locate the SID entry. For example:

Example
      ORA10G64 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = saturn.openlinksw.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora10g64)
)
)


5. Login to the machine that contains the Oracle native client.
6. su to the oracle user.
7. Execute the oracle user's .profile.
8. cd to $ORACLE_ HOME/network/admin.
9. vi tnsnames.ora.
10. Create the same entry.

ORACLE_HOME

ORACLE_HOME

The ORACLE_ HOME environment variable passes the full path to the root of the local, Oracle installation.

ORACLE_SID

ORACLE_SID

The ORACLE_ SID environment variable passes a valid Oracle SID as defined in $ORACLE_ HOME/network/admin/tnsnames.ora.

Identify the Oracle SID

Identify the Oracle SID

On Unix

1. Login to your Oracle database server.

2. su to your oracle user.

3. Execute the .profile associated with your oracle user.

4. cd into your $ORACLE_HOME/network/admin directory.

5. cat your listener.ora file.

Oracle SIDs are passed to the SID parameter.

On Windows

1. Login to your Windows database server.

2. Search your system for the Oracle listener.ora file.

3. Open the listener.ora file with Notepad.

Oracle SIDs are passed to the SID parameter.

Identify the Oracle TCP port

Identify the Oracle TCP port

On Unix

1. Login to your Oracle database server.

2. su to your oracle user.

3. Execute the .profile associated with your oracle user.

4. cd into your $ORACLE_HOME/network/admin directory.

5. cat your listener.ora file.

6. Locate your Oracle SID.

7. The port will be passed to the Port parameter associated with your Oracle SID.

On Windows

1. Login to your Windows database server.

2. Search your system for the Oracle listener.ora file.

3. Open the listener.ora file with Notepad.

4. Locate your Oracle SID.

5. The port will be passed to the Port parameter associated with your Oracle SID.

Identify the SQL*Net or Net Service Name

On Unix

  1. Log in to the Oracle DBMS server.
  2. su - oracle
  3. Execute the ingres associated with the oracle user.
  4. cd $ORACLE_HOME/bin
  5. Run the netca program.
  6. Wait for the Welcome page to appear.
  7. Select "Local Net Service Name Configuration."
  8. Select Next.
  9. Select the Test option.
  10. Select Next.
  11. Use the drop-down menu to display a list of Oracle net service names available on the machine.
  12. Exit the utility.

On Windows

  1. Log in to the machine that hosts the Oracle DBMS.
  2. Launch the Net Configuration Assistant (Start menu >> Programs >> Oracle).
  3. Click the Local Net Service Name configuration radio button.
  4. Click Next.
  5. Click Test.
  6. Click Next.
  7. Use the drop-down menu to display a list of Oracle net service names available on the machine.
  8. Use the Cancel button to exit the utility.
Database Configuration for Unicode

Database Configuration for Unicode

Oracle 8 & 9

The Oracle 9i, 8i and 8.0 databases store Unicode data in the UTF8 encoding scheme, which is an ASCII compatible multibyte encoding for Unicode.

Database Confguration

Using the Oracle "Database Configuration Assistant" wizard, follow the options for creating a new database. Select the "custom" option when presented. This will enable you to use the "Change the Character Set" option, during the configuration of this Custom database. You want to select UTF8.

To check the character set in use by your database, execute the following query in SQL*Plus:

Example
SQL> SELECT parameter, value FROM nls_database_parameters
WHERE parameter = 'NLS_CHARACTERSET';
PARAMETER             VALUE
------------------    ---------------------
NLS_CHARACTERSET      UTF8
SQL>.


Unicode support is dependent on the Unicode features available through the Oracle Call Interface (OCI). OCI 8.1.5 supports inputting Unicode data into a database and retrieving Unicode data from a database.

The Following Oracle Data types can be using for storing Unicode data:

Example
CHAR
VARCHAR
VARCHAR2
Configuring Oracle for XA support

Configuring Oracle for XA support

XA support has been tested against Oracle version 9i and 10g

Granting SELECT Privilege on V$XATRANS$ & DBA_PENDING_TRANSACTIONS Views

You must grant SELECT privilege to the V$XATRANS$ view for all Oracle accounts that XA applications will use. Otherwise, xa_recover will fail, in the event that TM needs to perform a recovery. If the view does not already exist in your Oracle installation, it can be manually loaded using the following SQL script which should be included in your Oracle installation:

Example
$ORACLE_HOME/rdbms/admin/xaview.sql


The example below shows an extract from an Oracle XA Library trace file. Oracle returns error ORA-00942 : table or view does not exist, because user scott does not have the necessary SELECT privilege on the V$XATRANS$ view.

Example
ORACLE XA: Version 10.1.0.0.0. RM name = 'Oracle_XA'.
113956.2352:536.536.1:
xaoopen: xa_info=ORACLE_XA+Threads=true+SesTm=60+Acc=P/scott/tiger+DB=DB01BA5BF8+SQLNET=ORCL+DbgFl=0x1+LogDir=c:/,rmid=1,flags=0x0
113956.2352:536.536.1:
xaolgn_help: version#: 168821248 banner: Personal Oracle Database 10g Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
113956.2352:536.536.1:
xaoopen: return 0
113959.2352:536.536.1:
xaorecover: xids=0xf8f8f8, count=10, rmid=1, flags=0x1000000
113959.2352:536.536.1:
ORA-00942: table or view does not exist
113959.2352:536.536.1:
xaorecover: xaofetch rtn -3.
113959.2352:536.536.1:
xaoclose: xa_info=DSN=au49-ora10-carlv;UID=scott;PWD=tiger;+DB=DB01BA5BF8, rmid=1769209857, flags=0x0
113959.2352:536.536.1:
xaoclose: rtn 0


The syntax for adding the grant privilege to the 'scott' user is:

SQL
GRANT SELECT ON V$XATRANS$ TO scott;


In addition, the "ORA-00942: table or view does not exist" error also occurs if select privileges are not granted on the DBA_PENDING_TRANSACTIONS view, requiring the following command to be executed as a DBA user:

SQL
GRANT SELECT ON DBA_PENDING_TRANSACTIONS TO PUBLIC


Note: The V$XATRANS$ did not exist nor did the DBA_PENDING_TRANSACTIONS view have appropriate select privileges in Unix Oracle installations, although they are included in Windows installations by default.

Pre-installation Guide

Pre-Installation Requirements for the Single-Tier (Lite Edition) ODBC Driver for Oracle, Linux or Unix-like OS

  1. You must be able to establish a connection with your target Oracle Database using existing Oracle Client Software. If you encounter problems making a connection to your target database, please check the following settings:
    • Oracle SID: Specify the Oracle System Identifier (SID) of your database.
    • Oracle TCP Port: Provide the TCP port number used for communication with the Oracle database.
    • Oracle SQL*Net or Net Service Name: Specify the SQL*Net or Net Service Name for your Oracle database.
    • Hostname or IP address of Oracle database server: Provide the hostname or IP address of the server where your Oracle database is located.

Installation Guide

OpenLink ODBC Driver Installation for Linux

  1. The installation files ship as an installation shell script, a driver and admin .taz file, and a license .lic file. The installation shell script should be ftp'd in ascii. The rest of the files should be ftp'd in binary, where applicable.
  2. Downloads these documents, and place them in your desired installation folder.
  3. Start the installation process by opening the installation directory using cd, and running sh install.sh.
  4. You must choose a TCP port on which to run your HTTP-based iODBC Data Sources Administrator. The default is 8000. You will need to know this port number and your local machine's IP address or hostname to access your Admistrator in a Web browser. This is how you call it: http://machine:portnumber
  5. Log File? enables you to rename and relocate your Administrative Assistant's log file. It is best to go with the default.
  6. You can choose to log all requests. This is not diagnostic-level odbc tracing or connection logging. The default is no.
  7. You can change the iODBC Data Source Administrator's default username from "admin." This is the name that you will need to login to OpenLink's HTTP-based iODBC Data Sources Administrator.
  8. You can change the iODBC Data Source Administrator's default password from "admin."
  9. The installation is complete.

Data Source Name Configuration Guide

Configuration of the Lite Edition (Single-Tier) ODBC Driver for Oracle 10g+ Data Sources, for Linux

  1. Prerequisites:
    • You MUST be proficient in using a Unix shell.
    • You MUST be proficient in using a Unix editor such as vi.
    • You MUST be in possession of relevant database connectivity details such as Database name, Username, password, etc.
    • You MUST have installed and available either a full installation of Oracle, Oracle Client, or Oracle Instant Client (release 6.x only).
  2. Open the file <OPENLINK_INSTALL>/openlink.sh with a suitable text editor such as vi.
  3. Locate the section that deals with the location of shared libraries pertaining to your system (LD_LIBRARY_PATH, LIBPATH, or SHLIB_PATH) and add to it the location of your Informix lib and lib/esql directories:
    INI
    LD_LIBRARY_PATH="<OPENLINK_INSTALL>/lib:/oracle/lib:$LD_LIBRARY_PATH"
  4. Open the file <OPENLINK_INSTALL>/openlink.ini with a suitable text editor such as vi.
  5. Locate the [Environment Oracle xxx] section that deals with the driver specific Oracle configuration and edit to reflect your Oracle installation:
    INI
    [Environment Oracle 10.x]
    ORACLE_HOME        = /oracle/
    ;ORACLE_SID         = ORCL
    ;ORACLE_SERVER      = T
    ;TWO_TASK           = P:
    ;ODBC_CATALOGS      = Y     ; Uncomment after loading odbccat10.sql
    ;MULTIPLEX_LDA      = 5     ; Allow 5 OpenLink clients on a single lda
    ;OPL_USR_TBLS_FIRST = Y     ; Sort SQLTables starting with user tables
    SHOW_REMARKS        = N     ; Retrieve SQLColumns REMARKS field
    CURSOR_SENSITIVITY  = LOW   ; Set to HIGH after loading odbccat10.sql
    ;OCI_PREFETCH_ROWS  = 100   ; Number of rows to prefetch
    ;OCI_PREFETCH_MEMORY = 65535 ; Amount of memory to use for prefetching
    ;NLS_LANG           = AMERICAN_AMERICA.UTF8 ; Unicode connection
  6. Open the file <OPENLINK_INSTALL>/bin/odbc.ini with a suitable text editor such as vi.
  7. Locate and edit the sample OpenLink Oracle ODBC data source (DSN) created during the installation process and edit as follows:
    INI
    [oracle]
    Driver            = <OPENLINK_INSTALL>/lib/ora100_mt_lt.so
    ServerType        = Oracle 10.x
    Options           = <TNSName>
    Username          = <scott>
    Password          = <**********>
    FetchBufferSize   = 99
    ReadOnly          =
    DeferLongFetch    =
    JetFix            = No
    Description       = Sample Oracle 10.x Lite Connection
  8. Use the iodbctest tool which is packaged with the HTTP-based OpenLink ODBC Administrator as follows:
    Shell
    # cd <OPENLINK_INSTALL>
    # . ./openLink.sh
    # iodbctest oracle
    iODBC Demonstration program
    This program shows an interactive SQL processor
    Driver Manager: 03.52.0507.0105
    Driver: 06.02.1217 OpenLink Generic ODBC Driver (ora100_mt_lt.so)

    SQL>
  9. You should now be able to issue SQL statements directly against the target database.

Additional Information:
The bitness of the ODBC Driver for MySQL is determined by the bitness of your ODBC client application.
That is, if your ODBC client application is 32-bit then the Generic ODBC Driver component MUST also be 32-bit.

Walkthrough with screenshots

Installation walkthrough with screenshots

The same installation, step by step, with the screens you will see.

OpenLink ODBC Driver for Oracle 10 (Lite Edition) Installation and Configuration

If you have not already done so, please review the Pre-Installation documentation.

Installation

  1. Login to your Unix or Linux client machine.

  2. Create and/or navigate to your chosen installation directory, e.g., /opt/openlink/.

  3. The installation files ship as an installation shell script, a .taz file for each of driver and admin, and a license .lic file. All files should be transferred by binary-preserving methods (e.g., FTP in BIN mode).

  4. Use the su command to switch to your DBMS or DBMS native client userid, where appropriate.

  5. Execute the .profile associated with the DBMS user.

  6. Use the echo command to ensure that ORACLE_HOME and ORACLE_SID are set.

  7. Run the following command to start the installation:

    Shell
    sh install.sh


  8. You must choose a TCP port on which to run your HTTP-based iODBC Administrator. The default is 8000. You will need to know this port number and your local machine's IP address or hostname to access your Admistrator in a Web browser. This is how you call it: http://machine:portnumber/

  9. Log File? enables you to rename and relocate your Administrative Assistant's log file. It is best to go with the default.

  10. You can choose to log all requests to the Administrator. This is not diagnostic-level ODBC tracing nor connection logging. The default is no.

  11. You can change the iODBC Data Source Administrator's default username from "admin." This is the name that you will need to login to OpenLink's HTTP-based iODBC Data Sources Administrator.

  12. You can change the iODBC Data Source Administrator's default password from "admin."

  13. The installation is complete.

Configuration

The documentation below assumes you are using the HTTP-based iODBC Administrator to configure your DSN. You may prefer to manually configure Oracle ODBC connections.

  1. Execute the bash command to open a bash shell. If you do not have have the bash shell, substitute the sh command for the bash command. This will open the bourne shell.

  2. Run the following command to set your ODBC environment variables and start the OpenLink License Manager (oplmgr) process:

    Shell
    . ./openlink.sh


  3. cd into the bin sub-directory of your OpenLink installation.

  4. Use the ls command to display your files.

  5. Run the following command to start your HTTP-based iODBC Data Sources Administrator:

    Shell
    ./iodbc-admin-httpd.sh start


  6. Open a Web browser on any computer and type the URL for your administrator in the address bar.

  7. Click the Client Components Administration link in the left hand side navigation bar.

  8. Click the Configure ODBC Data Sources link in the left hand side navigation bar.
  9. Then, login with your username and password.

  10. Click the Add button.

  11. Click the OpenLink Oracle Lite Driver (multi-threaded). Then, click Create DSN.

  12. Provide a descriptive name and optional description for your DSN. Then, click Next.

  13. Pass the following values in the next dialog:

    • Database Name - Blank
    • Connection Options - A local Oracle SQL*Net or Net Service Name, or (for experts only) an Oracle InstantClient connect string
    • Username - A valid Oracle username
  14. Click Next.
  15. The next dialog sets environment variables which are managed through the openlink.ini or $OPENLINKINI configuration file:

    • Existing Environment - This arbitrary heading for a collection of DBMS-related environment variables usually corresponds with the DBMS version
    • New Environment - You can choose a new heading
    • ORACLE_HOME - The full path to the root of a local Oracle installation or Oracle client installation
    • ORACLE_SID -An Oracle SID
    • SHOW_REMARKS - Show Remarks affects output from the SQLColumns ODBC API call. Use this option in conjuntion with Oracle queries. When enabled, the REMARKS column of a SQLColumns result set includes the comments from the COMMENTS column of the Oracle ALL_ COL_ COMMENTS data dictionary view. When disabled, the REMARKS column is empty. Disabling Show Remarks improves performance.
    • 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.
  16. Click Next.
  17. You can set the following, optional values on the fourth dialog:

    • 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.
    • Jet fix - This option facilitates translation of certain datatypes by the Microsoft Jet Engine. If you utilize MS applications, and you notice that money and other datatypes are mishandled, test with Jet fix enabled.
    • No AutoCommit - Changes the default commit behaviour of the OpenLink driver. The default mode is AutoCommit (box unchecked).
    • No RowSetSize 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.
  18. Click Next.
  19. Additional, optional parameters appear on the fifth, and final dialog:

    • 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 - 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.
    • 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".
    • Initial SQL - Lets you specify a file containing SQL statements that will be run automatically against the database upon connection.
  20. Click Next.
  21. Your new DSN is highlighted and persisted on the the Data Sources tab. Click the Test tab.

  22. Type your password in the password field and click test.

  23. You have established a connection.

Proceed to Commercial Licensing Documentation

Should you decide to purchase a commercial license at the end of your evaluation period, be sure to consult our documentation which explains the placement and uptake of commercial license files and the use of our OpenLink License Manager technology: License Technology & Application

OpenLink ODBC Driver for Oracle 8 & 9 (Lite Edition) Installation and Configuration

OpenLink ODBC Driver for Oracle 8 & 9 (Lite Edition) Installation and Configuration


Review Preinstallation Documentation: Pre-Installation Configuration for Oracle Single-Tier Drivers (Unix)

Installation

Login to your Unix or Linux client machine.

cd into the installation directory.

The installation files ship as an installation shell script, a driver and admin .taz file, and a license .lic file. The installation shell script should be ftp'd in ascii. The rest of the files should be ftp'd in binary, where applicable.

Use the su command to switch to your DBMS or DBMS native client userid, where appropriate.

Execute the .profile associated with the DBMS user.

Use the echo command to ensure that ORACLE_HOME and ORACLE_SID are set.

Run the following command to start the installation: sh install.sh

You must choose a TCP port on which to run your HTTP-based iODBC Data Sources Administrator. The default is 8000. You will need to know this port number and your local machine's IP address or hostname to access your Admistrator in a Web browser. This is how you call it: http://machine:portnumber

Log File? enables you to rename and relocate your Administrative Assistant's log file. It is best to go with the default.

You can choose to log all requests. This is not diagnostic-level odbc tracing or connection logging. The default is no.

You can change the iODBC Data Source Administrator's default username from "admin." This is the name that you will need to login to OpenLink's HTTP-based iODBC Data Sources Administrator.

You can change the iODBC Data Source Administrator's default password from "admin."

The installation is complete.

Configuration

Jump to manual configuration docs: Manually Configure Oracle 8 & 9 Connectivity

Execute the bash command to open a bash shell. If you do not have have the bash shell, substitute the sh command for the bash command. This will open the bourne shell.

Use the export command to set an OPL_LICENSE_DIR variable that points to the directory that contains your OpenLink license. This is typically the bin sub-directory of the OpenLink installation. However, you can put your license files in /etc/, the root of the installation, or virtually anywhere else.

Run the following command to set your ODBC environment variables: . ./openlink.sh

cd into the bin sub-directory of your OpenLink installation.

Use the ls command to display your files.

Note: I have an OpenLink License Manager currently running on my system. You need to manually start your own License Manager. Run this command: ./oplmgr +start

Run the following command to start your HTTP-based iODBC Data Sources Administrator: ./iodbc-admin-httpd.sh start

Open a Web browser on any computer and type the URL for your administrator in the address bar.

Click the Client Components Administration link in the left hand side navigation bar.

Click the Configure ODBC Data Sources link in the left hand side navigation bar.

Then, login with your username and password.

Click the Add button.

Click the OpenLink Oracle Lite Driver (multi-threaded). Then, click Create DSN.

Provide a descriptive name and optional description for your DSN. Then, click Next.

Pass the following values in the next dialog:

  • Database Name - Blank
  • Connection Options - A local Oracle SQL*Net or Net Service Name
  • Username - A valid Oracle username

Click Next.

Set the following variables on the next dialog:

  • Existing Environment - This arbitrary heading for a collection of DBMS-related environment variables usually corresponds with the DBMS version
  • New Environment - You can choose a new heading
  • ORACLE_HOME - The full path to the root of a local Oracle or Oracle client installation
  • ORACLE_SID -An Oracle SID
  • SHOW_REMARKS - Show Remarks affects output from the SQLColumns ODBC API call. Use this option in conjuntion with Oracle queries. When enabled, the REMARKS column of a SQLColumns result set includes the comments from the COMMENTS column of the Oracle ALL_ COL_ COMMENTS data dictionary view. When disabled, the REMARKS column is empty. Disabling Show Remarks improves performance.
  • 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.

Click Next.

You can set the following, optional values on the fourth dialog:

  • 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.
  • Jet fix - This option facilitates translation of certain datatypes by the Microsoft Jet Engine. If you utilize MS applications, and you notice that money and other datatypes are mishandled, test with Jet fix enabled.
  • No AutoCommit - Changes the default commit behaviour of the OpenLink driver. The default mode is AutoCommit (box unchecked).
  • No RowSetSize 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.

Click Next.

Additional, optional parameters appear on the fifth, and final dialog:

  • 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 - 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.
  • 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".
  • Initial SQL - Lets you specify a file containing SQL statements that will be run automatically against the database upon connection.

Click Next.

Your new DSN is highlighted and persisted on the the Data Sources tab. Click the Test tab.

Type your password in the password field and click test.

You have established a connection.


Proceed to Commercial Licensing Documentation:

Should you decide to purchase a commercial license at the end of your evaluation period, be sure to consult our documentation which explains the placement and uptake of commercial license files and the use of our OpenLink License Manager technology: License Technology & Application

Configuration and upgrades

Creating and testing data sources

Creating DSNs and trying a connection, with screenshots.

Additional Reading

Additional Reading

Create File DSNs

This format of ODBC DSN enables the creation of centralized ODBC DSNs on a designated NT or Windows 95 Server machine, thereby reducing the administrative overhead of ODBC DSN configuration for every single machine within your infrastructure.

The steps for creating an ODBC File DSN are as follows:

1. Select the File DSN Tab from the ODBC Driver Manger. Press the Add button.

Figure: 1. File Data Sources

2. Pick the ODBC Driver to be used to create your ODBC DSN, in the case of the OpenLink Universal Data Access Driver Suite 5.0, this would be the Driver identified below as "OpenLink Generic ODBC Driver".

Figure: 2. Data Source Configuration

3. Enter a name that describes your File DSN (e.g. "Sales by Region" as depicted below) for future use when interacting with it from ODBC compliant application and environments. At present to get full compatability within the Admin Assistant, you must end your dsn name with the extension ".dsn". So for this example the DSN name would be "Sales by Region.dsn".

Figure: 3. File Data Sources

4. Verify the displayed paramters are correct, and confirm by hitting Finish button.

Figure: 4. File Data Sources

5. Enter a Description and define the location of the server either by selection, or enter it manually.

Note the name is not defined here as the filename defines the DSN.

Figure: 5. File Data Sources

6. Complete the fields of the ODBC File DSN. Enter Domain, Database, Server. See above for details of each.

The File DSN must be verified immediately, so the Login ID and password are required. The Next button will be disabled until login details are provided.

Figure: 6. File Data Sources

7. Complete the fields for additional connection parameters.

Figure: 7. Data Source Configuration

8. This concludes the File DSN generation. The DSN will appear in the list under the File DSN Tab of the ODBC Driver Manger.

Figure: 8. File Data Sources

Bench Testing ODBC Drivers

Bench Testing ODBC Drivers

ODBC Bench Test is a 32 Bit C++ program based on the industry standard TPC-A benchmark (we will be extending this program to include the TPC-C and TPC-D benchmarks also). This program helps you compare the performance of Virtuoso against other backend database engines as well as compare the performance of various ODBC Drivers connecting to any ODBC compliant backend database.


1. Go to the OpenLink Data Access Drivers "Start Menu" item, then click on the "ODBC Bench Test 32 Bit" menu item. You will be presented with the "Bench Test" interface.

Figure: 1

2. Follow the File->Connect menu path which initializes the ODBC Driver Manager, which in turn presents you with a list of ODBC DSNs installed on your machine. Select the DSN that you want to benchmark, remember that by benchmarking a DSN you are benchmarking the ODBC Driver that serves the DSN in question and the backend database engine that serves the ODBC Driver. Choose the name of the datasource you want to benchmark.

Figure: 2

3. You will then be presented with a Login Dialog by the OpenLink Generic Driver for ODBC, enter a valid user name and password into the appropriate fields.

Figure: 3

4. Now follow the Bench-->Load Tables menu path and you will be presented with a dialog that enables you to configure key elements of your benchmark. Click the "Execute" button to commence the process of setting up your database for the benchmark tests. Please make sure you select the appropriate schema for the DBMS that you are connecting to so that the benchmark tables are created properly.

Figure: 4

5. As the process of loading data occurs, all the way up to completion, the benchmark program will provide status information into the benchmark output pane as shown below:

Figure: 5

6. Now that all the benchmark data has been loaded into your database, follow the Bench-->Run Benchmark menu path and then configure your actual benchmark session parameters:

These benchmark parameters fall into 3 categories, Timing Options, SQL Options, and Execution Options.

Figure: 6

Timing Options:

These setting allow you to configure the duration related aspects of this benchmark program

Minutes

this is the duration of each benchmark run

Runs

this controls how many iterations of the benchmarks you actually run (the default is one benchmark iteration with a duration of 5 minutes)

SQL Options:

These settings allow you to configure how your benchmark's SQL instructions are actually handled.

ExecDirect with SQL Text

this means that no form of repetitive SQL execution optimization is being applied (SQL statements are prepared and executed repetitively)

Prepare/Execute Bound Params

this means that the Parameter Binding SQL execution optimization is being applied (SQL is prepared once but executed many times without the overhead of re-preparing statements prior to execution)

Use Stored Procedures

this means that the Stored Procedure SQL optimization is being applied (benchmark instructions are stored within database being benchmarked)

Execution Options:

These settings allow you to configure the tone of your benchmark, for instance it could have Transaction scoping and a mix of record retrieval queries, or it could simply be input and update intensive with a minimal amount of record retrieval queries (the case when the 100 row query checkbox is unchecked a typical OLTP scenario)

Asynchronous

execute the benchmark instructions asynchronously

Use Transactions

make the benchmark use transaction control (instructions are scoped to transaction blocks)

Do 100 row Query

perform a simulation of a 100 record retrieval as part of the benchmark activity.

7. Click on the "Run All" button if you would like all the different benchmark type combinations to be performed.

8. When benchmark run complete benchmark data is written to the benchmark program's output pane.

Figure: 7



The key pieces of benchmark data that you need to look out for are:

Total Transactions

total number of transactions completed during the benchmark run

Transactions Per Second

number of transaction completed per second for the benchmark run

Information from this benchmark is automatically written to an Excel format CSV (the file c:\odbcbnch.csv) which makes it easy for you to graph and pivot data collated from several benchmark runs. A later version of this demo will actually write the benchmark data into an ODBC DSN that you provide thereby offering even more flexibility and accessibility to benchmark data.

Advanced configuration for Oracle

Optional features of the Oracle drivers, each with its own settings.

Configure Oracle Connection Pooling

Configure Oracle Connection Pooling

Use the following instructions to configure Oracle Connection Pooling:

Single-Tier (Lite) Windows

1. Log in to the machine that hosts OpenLink's Single-Tier (Lite Drivers).

2. Launch your ODBC Data Sources Administrator.

3. Locate your OpenLink DSN.

4. Click the Configure button.

5. Scroll through the configuration screens until you find the "Enable OC Connection Pooling" checkbox.

6. Check the Pooling checkbox to create a separate connection pool for each Oracle instance to which you connect.

7. Configure the rest of the fields related to Pooling:

  • Minimum Pool Size - The minimum number of connections to be opened when the pool is created.
  • Maximum Pool Size - The maximum number of connections that can be opened in the pool.
  • Increment - The incremental number of connections to be opened when all the connections are busy and a call needs a connection.
  • Linger time - The amount of time to wait for a connection when all connections are busy and the maximum number of open connections has been reached.
  • Wait for free connection - The length of time the last connection in the pool should linger before the pool is destroyed.
Making Connections through the Oracle Instant Client

Our Single-Tier "Lite" Edition drivers and Multi-Tier "Enterprise" Edition database agents can communicate with remote Oracle databases through the Oracle Instant Client libraries. Instant Client allows you to run applications without installing the full Oracle client (SQL*Net or Net8/9/10/11) or having an ORACLE_HOME. It supports two basic connection string formats:

  • [username[:password]@]//host[:port][/service name], e.g. //dbase-server-5:4321/ORDERS
  • an Oracle Net keyword-value pair such as
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dlsun242)
    (PORT=5521)) (CONNECT_DATA=(SERVICE_NAME=bjava21)))

Naming methods that use a configuration file (such as tnsnames.ora or sqlnet.ora) for name translation are also possible, if the environment variable TNS_ADMIN is set to point to the directory containing the file.

Oracle documentation:


Additionally, the ORACLE_HOME and relevant library path variables must point to the root of the Oracle Instant Client installation. These variables appear in the environment and various configuration files.

Follow the instructions appropriate to your driver and OS, to ensure that your environment and configuration files are properly configured.

Single-Tier

Single-Tier on a Unix-like OS

  1. Log in to your client machine.
  2. Use the sh or bash command to open a bourne or bash shell.
  3. cd into the root of your Single-Tier driver installation.
  4. Execute this command: . ./openlink.sh
  5. Execute this command: echo $ORACLE_HOME
  6. Use export to set ORACLE_HOME to the root of your local Instant Client Installation, as needed.
  7. Use the echo command to display your library path. For example:
    • AIX: echo $LIBPATH
    • HP-UX: echo $SHLIB_PATH
    • Other: echo $LD_LIBRARY_PATH
  8. Use export to append the root of the Instant Client installation to your library path, as needed.
  9. cd into the bin sub-directory of your Single-Tier driver installation.
  10. Use a text editor to open the openlink.ini file.
  11. Locate the [Environment Oracle] section that applies to you. For example:

    INI
    [Environment Oracle 9.x]
    ORACLE_HOME        = /dbs3/oracle/oracle9i/32bit/v9.2.0.1.0
    ORACLE_SID         = ora9264
    ;ORACLE_SERVER          = T
    ;TWO_TASK               = P:
    ;ODBC_CATALOGS          = Y     ; Uncomment after loading odbccat9.sql
    ;MULTIPLEX_LDA          = 5     ; Allow 5 OpenLink clients on a single lda
    ;OPL_USR_TBLS_FIRST     = Y     ; Sort SQLTables starting with user tables
    SHOW_REMARKS       = N  ; Retrieve SQLColumns REMARKS field
    CURSOR_SENSITIVITY = LOW        ; Set to HIGH after loading odbccat9.sql
    ;OCI_PREFETCH_ROWS      = 100   ; Number of rows to prefetch
    ;OCI_PREFETCH_MEMORY    = 65535 ; Amount of memory to use for prefetching
    ;NLS_LANG               = AMERICAN_AMERICA.UTF8 ; Unicode connection
    [Environment Oracle 10.x]
    ORACLE_HOME        = /dbs3/oracle/instantclient_10_2
    ORACLE_SID         = ora10g64
    ;ORACLE_SERVER          = T
    ;TWO_TASK               = P:
    ;ODBC_CATALOGS          = Y     ; Uncomment after loading odbccat10.sql
    ;MULTIPLEX_LDA          = 5     ; Allow 5 OpenLink clients on a single lda
    ;OPL_USR_TBLS_FIRST     = Y     ; Sort SQLTables starting with user tables
    SHOW_REMARKS       = N  ; Retrieve SQLColumns REMARKS field
    CURSOR_SENSITIVITY = LOW        ; Set to HIGH after loading odbccat10.sql
    ;OCI_PREFETCH_ROWS      = 100   ; Number of rows to prefetch
    ;OCI_PREFETCH_MEMORY    = 65535 ; Amount of memory to use for prefetching
    ;NLS_LANG               = AMERICAN_AMERICA.UTF8 ; Unicode connection

  12. Pass the root of your Instant Client installation as ORACLE_HOME.
  13. Save your changes and exit the file.

Single-Tier on Windows

  1. Log in to your client machine.
  2. Expand the Windows Control Panel.
  3. Locate the System utility.
  4. Click on the Advanced tab.
  5. Click the Environment button.
  6. Scroll through the User and System variables.
  7. Set an ORACLE_HOME variable that points to the root of the local Instant Client installation, if it does not exist.
  8. Add the root of the Instant Client installation to PATH, if it is not already present.
  9. Exit the System utility.

Multi-Tier

Multi-Tier with Oracle Database Agent on a Unix-like OS

  1. Log in to the machine that contains your Multi-Tier server components.
  2. Use the sh or bash command to open a bourne or bash shell.
  3. cd into the root of your Multi-Tier installation.
  4. Execute this command: . ./openlink.sh
  5. Execute this command: echo $ORACLE_HOME
  6. Use export to set ORACLE_HOME to the root of your local Instant Client Installation, as needed.
  7. Use the echo command to display your library path. For example:
    • AIX: echo $LIBPATH
    • HP/UX: echo $SHLIB_PATH
    • Other: echo $LD_LIBRARY_PATH
  8. Use export to append the root of the Instant Client installation to your library path, as needed.
  9. cd into the bin sub-directory of your Multi-Tier installation.
  10. Use a text editor to open the oplrqb.ini file.
  11. Locate the [Environment ORACLE] section that applies to you. For example:

    INI
    [Environment ORACLE90]
    ORACLE_HOME        = /dbs3/oracle/oracle9i/32bit/v9.2.0.1.0
    ORACLE_SID         = ora9264
    ;ORACLE_SERVER      = T
    ;TWO_TASK           = P:
    ;ODBC_CATALOGS      = Y         ; Uncomment after loading odbccat9.sql
    ;MULTIPLEX_LDA      = 5         ; Allow 5 OpenLink clients on a single lda
    ;OPL_USR_TBLS_FIRST = Y         ; Sort SQLTables starting with user tables
    SHOW_REMARKS       = N  ; Retrieve SQLColumns REMARKS field
    CURSOR_SENSITIVITY = LOW        ; Set to HIGH after loading odbccat9.sql
    ;OCI_PREFETCH_ROWS  = 100       ; Number of rows to prefetch
    ;OCI_PREFETCH_MEMORY = 65535    ; Amount of memory to use for prefetching
    LD_LIBRARY_PATH = /dbs3/oracle/oracle9i/32bit/v9.2.0.1.0/lib
    ;SHLIB_PATH      =
    ;LIBPATH         = /dbs/oracle81/lib    ; Find AIX shared libraries
    ;NLS_LANG        = AMERICAN_AMERICA.UTF8 ; Uncomment for Unicode connections
    [Environment ORACLE100]
    ORACLE_HOME        = /dbs3/oracle/instantclient_10_2
    ORACLE_SID         = ora10g64
    ;ORACLE_SERVER      = T
    ;TWO_TASK           = P:
    ;ODBC_CATALOGS      = Y         ; Uncomment after loading odbccat10.sql
    ;MULTIPLEX_LDA      = 5         ; Allow 5 OpenLink clients on a single lda
    ;OPL_USR_TBLS_FIRST = Y         ; Sort SQLTables starting with user tables
    SHOW_REMARKS       = N  ; Retrieve SQLColumns REMARKS field
    CURSOR_SENSITIVITY = LOW        ; Set to HIGH after loading odbccat10.sql
    ;OCI_PREFETCH_ROWS  = 100       ; Number of rows to prefetch
    ;OCI_PREFETCH_MEMORY = 65535    ; Amount of memory to use for prefetching
    ;LD_LIBRARY_PATH = /dbs/oracle100/lib   ; Find shared libraries
    ;SHLIB_PATH      = /dbs/oracle100/lib   ; Find HP/UX shared libraries
    ;LIBPATH         = /dbs/oracle100/lib   ; Find AIX shared libraries
    ;NLS_LANG        = AMERICAN_AMERICA.UTF8 ; Uncomment for Unicode connections

  12. Pass the root of your Instant Client installation to ORACLE_HOME.
  13. Pass the root of your Instant Client installation to the relevant library path variable.
  14. Ensure no semicolon appears in front of the relevant library path variable.
  15. Save your changes and exit the file.
  16. Start or restart the OpenLink Request Broker service. For example:

    Shell
    ./oplshut -fy
    ./oplrqb +loglevel 7 +logfile oplrqb.log

Multi-Tier with Oracle Database Agent on a Windows host

  1. Log in to the machine that contains your Multi-Tier server components installation.
  2. Expand the Windows Control Panel.
  3. Locate the System utility.
  4. Click on the Advanced tab.
  5. Click the Environment button.
  6. Scroll through the User and System variables.
  7. Set an ORACLE_HOME variable that points to the root of the Instant Client installation, if it does not exist.
  8. Add the root of the Instant Client installation to PATH, if it is not already present.
  9. Exit the System utility.
  10. Use Notepad to open the oplrqb.ini file that appears in the bin sub-directory of the Multi-Tier installation.
  11. Locate the [Environment ORACLE] section that applies to you. For example:

    INI
    [Environment ORACLE90]
    ORACLE_HOME        = /dbs3/oracle/oracle9i/32bit/v9.2.0.1.0
    ORACLE_SID         = ora9264
    ;ORACLE_SERVER      = T
    ;TWO_TASK           = P:
    ;ODBC_CATALOGS      = Y         ; Uncomment after loading odbccat9.sql
    ;MULTIPLEX_LDA      = 5         ; Allow 5 OpenLink clients on a single lda
    ;OPL_USR_TBLS_FIRST = Y         ; Sort SQLTables starting with user tables
    SHOW_REMARKS       = N  ; Retrieve SQLColumns REMARKS field
    CURSOR_SENSITIVITY = LOW        ; Set to HIGH after loading odbccat9.sql
    ;OCI_PREFETCH_ROWS  = 100       ; Number of rows to prefetch
    ;OCI_PREFETCH_MEMORY = 65535    ; Amount of memory to use for prefetching
    LD_LIBRARY_PATH = /dbs3/oracle/oracle9i/32bit/v9.2.0.1.0/lib
    ;SHLIB_PATH      =
    ;LIBPATH         = /dbs/oracle81/lib    ; Find AIX shared libraries
    ;NLS_LANG        = AMERICAN_AMERICA.UTF8 ; Uncomment for Unicode connections
    [Environment ORACLE100]
    ORACLE_HOME        = /dbs3/oracle/instantclient_10_2
    ORACLE_SID         = ora10g64
    ;ORACLE_SERVER      = T
    ;TWO_TASK           = P:
    ;ODBC_CATALOGS      = Y         ; Uncomment after loading odbccat10.sql
    ;MULTIPLEX_LDA      = 5         ; Allow 5 OpenLink clients on a single lda
    ;OPL_USR_TBLS_FIRST = Y         ; Sort SQLTables starting with user tables
    SHOW_REMARKS       = N  ; Retrieve SQLColumns REMARKS field
    CURSOR_SENSITIVITY = LOW        ; Set to HIGH after loading odbccat10.sql
    ;OCI_PREFETCH_ROWS  = 100       ; Number of rows to prefetch
    ;OCI_PREFETCH_MEMORY = 65535    ; Amount of memory to use for prefetching
    ;LD_LIBRARY_PATH = /dbs/oracle100/lib   ; Find shared libraries
    ;SHLIB_PATH      = /dbs/oracle100/lib   ; Find HP/UX shared libraries
    ;LIBPATH         = /dbs/oracle100/lib   ; Find AIX shared libraries
    ;NLS_LANG        = AMERICAN_AMERICA.UTF8 ; Uncomment for Unicode connections

  12. Pass the root of your Instant Client installation to ORACLE_HOME.
  13. Pass the root of your Instant Client installation to the relevant library path variable.
  14. Ensure no semicolon appears in front of the relevant library path variable.
  15. Save your changes and exit the file.
  16. Open your Windows Control Panel.
  17. Locate the Services utility. (It may be in the Administrative Tools sub-folder.)
  18. Launch Services.
  19. Locate the OpenLink Request Broker Service in the list box.
  20. Restart the OpenLink Request Broker service.
ODBC to Jet Data Type Mapping for Oracle

The following table details how the OpenLink drivers for Oracle fetch numeric data. The SQL type reported for a SELECT column varies depending on the native Oracle type of the column, its precision, and its scale. The OpenLink C type used to fetch the data is also shown, together with the effect of the JetFix command line switch.

Changes to the type mappings are shown in the table as italics.



{Notes} on the above table

  1. FLOAT(b) specifies a floating point number with binary precision b. The precision can range from 1 to 126. To convert from binary to decimal precision, multiply b by 0.30103.
  2. Possible loss of precision
  3. FLOAT specifies a floating point number with decimal precision 38, or a binary precision of 126.
  4. NUMBER specifies a floating point number with decimal precision = 38.
  5. Oracle appears to return s=0, p=0 for a calculated field
  6. Oracle permits a maximum precision of 38.

Precision of OpenLink C Types

The choice of OpenLink C type used to fetch a numeric value is determined by the maximum precision supported by the type. If a numeric type exists which can represent the data to be fetched without loss of precision, then this is used as the preferred fetch type. If a numeric type capable of supporting the required precision does not exist, then the data is fetched in character form, unless the JetFix switch is on. In this case, the data is fetched using the CTYPE_FLT64 fetch type. This type has sufficient range to store the maximum numeric values supported by Oracle, but its use may result in a loss of precision, if the precision of the data to be fetched exceeds 15 decimal digits.



Oracle Real Application Clustering

What is Real Application Clustering?

Oracle Real Application Clustering (RAC) uses Transparent Application Failover (TAF) which is a protocol within Oracle whereby, if a connection to a database node fails, it can be re-established against an alternative node.



Once a broken connection has failed-over, an application can continue without any special action on its part. However, TAF does not restore all facets of a connection. For instance, TAF does not:

  • restore active transactions - any active transactions are rolled back at the time of failure because TAF cannot preserve active transactions after failover: the application instead receives an error message until a ROLLBACK is submitted
  • restore session properties set using 'ALTER SESSION'
  • maintain the state of server-side program variables, such as PL/SQL package states

If any of these situations apply to a failed connection, an application may need to take action following failover to return the connection fully to the desired state. In order to do this, the application may request to be notified when failover has occurred. Both the "Lite" Edition and the "Enterprise" Edition Generic Client provide this facility through TAF event notifications.

The "Lite" Edition ODBC Driver and the "Enterprise" Edition Database Agent both enable configuration of the failover retry interval and the maximum number of failover retries, in the event that failover is not successful on the first attempt.

How to Configure UDA to use Oracle Real Application Clustering

Single-Tier "Lite" Edition on Unix-like OS

  1. Log in to the machine that hosts the Single-Tier (Lite) drivers.
  2. Use a text editor to open the openlink.ini ($OPENLINKINI) file that resides in the bin sub-directory of the Single-Tier installation.
  3. Locate the [Environment Oracle 10.x] section.
  4. Create and set the following two variables:

    INI
    OPL_TAF_MAX_RETRIES    = 10    ; This is the maximum number of times that the driver will retry the connection.
    OPL_TAF_RETRY_INTERVAL = 5     ; This is the number of seconds that the driver will wait between connection attempts.

  5. Save your changes and exit the file.

Single-Tier "Lite" Edition on Windows

  1. Log in to the machine that hosts the Single-Tier "Lite" Edition drivers.
  2. Launch your ODBC Data Sources Administrator.
  3. Locate the relevant DSN.
  4. Click the Configure button.
  5. Scroll through the configuration screens until you find the "Enable TAF" checkbox.
  6. Check the TAF checkbox to prompt the driver to attempt multiple failover connections to alternative DBMS nodes.
  7. Configure the rest of the fields related to TAF:
    • Maximum Retries - This is the maximum number of times that the driver will retry the connection.
    • Retry Interval (secs) - This is the number of seconds that the driver will wait between connection attempts.

Multi-Tier "Enterprise" Edition on any OS

  1. Log in to the machine that hosts the Multi-Tier server components installation.
  2. Use a text editor to open the oplrqb.ini file that resides in the bin sub-directory of the Multi-Tier installation.
  3. Locate the [Environment ORACLE10] section.
  4. Create and set the following two variables:

    INI
    OPL_TAF_MAX_RETRIES    = 10    ; This is the maximum number of times that the driver will retry the connection.
    OPL_TAF_RETRY_INTERVAL = 5     ; This is the number of seconds that the driver will wait between connection attempts.

  5. Save your changes and exit the file.
  6. Restart the Request Broker.

Programmatic Considerations

Our ODBC drivers notify ODBC applications that failover has occurred using two mechanisms: event call-backs and SQLSTATEs.

TAF Event Notification: Call-backs

An application can register a failover call-back routine by setting the proprietary connection attribute SQL_ATTR_EVENT_CALL-BACK (1280) on an open connection. The routine's address is supplied as the value of SQLSetConnectAttr's ValuePtr argument. The same call-back routine can be registered for more than one connection. The call-back routine's signature must take the form:

Example
void (*call-back) (oplevent_t   oplEvent,
SQLHANDLE    handle,
SQLUSMALLINT eventInfo)


where:

  • oplEvent is an integer indicating the type of event which took place.
  • context is an application-supplied ODBC handle identifying the context the event is taking place in.
  • eventInfo is an unsigned integer code providing more information about the event. The values returned depend on the type of event. 0 signifies 'no further information available'

oplEvent is of type oplevent_t, an enumerated type enumerating the types of events reported to event call-backs. oplevent_t is defined as follows:

Example
typedef enum
{
OPL_EV_NONE             = 0,
OPL_EV_FAILOVER_SUCCESS = 16,
OPL_EV_FAILOVER_ABORT   = 17
}
oplevent_t;


At the moment, only failover events are supported through the OPL_EV_FAILOVER_xxx event class. Other types of event may be supported in the future using this call-back mechanism. OPL_EV_FAILOVER_SUCCESS indicates that failover was successful, OPL_EV_FAILOVER_ABORT that failover was aborted.

context is the ODBC handle (HDBC) of the connection for which the application wishes to receive event notifications. This handle should be supplied to the ODBC driver when the call-back is registered, using another Oracle-specific connection attribute, SQL_ATTR_EVENT_CONTEXT (1281). If this attribute is not set, the call-back receives SQL_NULL_HANDLE for the handle argument. (If other event types are supported in the future, this attribute may accept other types of ODBC handle, e.g., handles of type SQL_HANDLE_STMT, depending on the scope of the event.)

eventInfo is reserved for future use. All failover events currently return 0.

TAF Event Notification: SQLSTATEs

In addition to being informed of failover through a call-back routine, an ODBC application also receives notification through SQLSTATEs. After failover completes, the first ODBC call to return on the affected connection can return one of two proprietary SQLSTATEs, IM500 or IM501:

  • IM500 denotes successful failover completion. If the ODBC call generated no other errors, the call returns SQL_SUCCESS_WITH_INFO with SQLSTATE IM500 and is accompanied by the informational message "Failover completed". As usual, the SQLSTATE and diagnostic message can be retrieved using SQLGetDiagRec().
  • IM501 ("Failover aborted") indicates failover was unsuccessful. A function returning this SQLSTATE returns with return code SQL_ERROR.

If the ODBC call returning the failover SQLSTATE fails for some reason, a diagnostic record holding the failover SQLSTATE and message is appended to any diagnostic records already generated by the failing call. In this case, even if failover was successful, a SQLSTATE IM500 may be accompanied by a function return code of SQL_ERROR. For instance, if a transaction was open at the time failover took place, SQLExecute() may return SQL_ERROR with two diagnostic records, for example:

  • DiagRec #1 ?

    Example
    Native error: 25402
    SQLSTATE: HY000
    Message: [OpenLink][ODBC][Oracle Server]ORA-25402: transaction must roll back

  • DiagRec #2 ?

    Example
    Native error: 0
    SQLSTATE: IM500
    Message: [OpenLink][ODBC][Oracle Server]Failover completed.

Note: Failover notification using TAF-specific SQLSTATEs cannot be used independently of failover call-backs. The use of these SQLSTATEs is only triggered when an application registers a failover call-back.

Related Links

Configure Oracle Reference Cursors in Stored Procedures

Configure Oracle Reference Cursors in Stored Procedures

No configuration is needed to leverage Oracle reference cursors in stored procedures. OpenLink's drivers use the same syntax recognized by Oracle native and 3rd-party drivers.

Default Driver Capability

Default Driver Capability

This feature is a driver default and requires no additional configuration.

Configure Oracle Unicode Support

Configure Oracle Unicode Support

The Oracle configuration parameter for control character sets is the NLS_LANG environment variable, which should be set to the correct character set for your client. Oracle 8.1.7 claims to be capable of dynamically determining the character set in use on the client and does not require the NLS_LANG to be set, but it is not a bad idea to set it anyway.

Additional information on Oracle Unicode support can be found from otn.oracle.com

Upgrades and existing installations

Finding out what is installed, and moving to a newer release.

Upgrades & Pre-Existing Installations

Upgrades & Pre-Existing Installations

Identifying Pre-existing Installations

Use the following instructions to search for pre-existing OpenLink components on partner-supplied machines and other hardware:

1. Open Windows ODBC Data Sources Administrators or Mac iODBC Data Sources Administrators. Click on the Drivers tab. Look for OpenLink driver entries.

2. Open Windows registries. Expand the HKEY_ LOCAL_ MACHINE\SOFTWARE\ODBC\ODBCINST.INI tree structure. Look for OpenLink driver entries.

3. Use the Windows explorer to search for oplrqb.exe, olod*.dll, or lite32.

4. Open the Windows Services utility and look for an OpenLink Request Broker or License Manager service.

5. Log in to Mac OS X machines and open the Applications folder. Look for an OpenLink=>Universal Data Access Drivers folder structure.

6. Log in to Unix machines and use the find / -name file -print command to search for the following files: oplrqb, oplodbc.s*, openlink.ini

Discovery of one or more of these files confirms the presence of OpenLink's Multi-Tier, Single-Tier or Express Edition drivers. If you want to install new software, you have two options:

7. Remove the old software and start fresh.

8. Obtain version information from the existing software and obtain new components from the same build.

Upgrades & Pre-Existing Installations

Upgrades & Pre-Existing Installations

Mixing & Matching Components from Different Versions

OpenLink Software does not support mixed-version installations. Mismatched client and server software may not hinder your ability to connect and query. However, version incompatibility issues will arise over time. In fact, if you mix OpenLink 3.x and OpenLink 4.x software, you can expect specific problems with stability, transactions, and threading. These problems may only be resolved by upgrading the older component.


Be advised: Under rare circumstances, you may be forced to deploy a mixed installation. As stated previously, 3.x and 4.x components tend to generate problems. However, 4.x client components appear to work well with 5.x server components.

Upgrades & Pre-Existing Installations

Upgrades & Pre-Existing Installations

Detecting Sofware Versions

You may employ a variety of methods to obtain your product version information. Windows and Mac Single-Tier users should open their ODBC Administrator. The Single-Tier driver version appears on the Drivers tab of this Administrator. Users simple scroll through the Driver list box, locate their driver, and record the version string, which appears to the right of the driver name.


Windows & Mac Client Drivers (Express Edition/Single-Tier/Multi-Tier)

1. Open your ODBC Data Sources Administrator or iODBC Data Sources Administrator.
2. Click the Drivers tab.
3. Scroll through the list box until you locate the OpenLink driver.
4. View the driver version information that appears to the right of the driver name.


Unix Client Drivers (Single-Tier/Multi-Tier)

1. Login to the client machine.
2. cd into the root of the OpenLink installation.
3. Execute the openlink.sh or openlink.csh shell script.
4. cd into the /samples/ODBC (MT) or /bin (ST) sub-directory of the installation.
5. Use odbctest or iodbctest to connect to your Data Source.
6. View the driver version information that appears above the SQL> prompt.
7. Alternatively, run one of the following commands from the /lib sub-directory:

HP-UX strings *.sl grep "Driver" sort -u
All Other Unix strings *.so grep "Driver" sort -u


Multi-Tier Server Components (All Platforms)

1. Open a DOS Command Prompt, Unix console terminal, or similar command line utility.
2. cd into the /bin sub-directory of the OpenLink server components installation.
3. Type the broker or agent name and append -? or ?v to the end of the name. For example:

oplrqb -?
ingii_mv -?
sql_mv -?

4. Record the version information that is returned by the broker or agent.

Upgrades & Pre-Existing Installations

Upgrades & Pre-Existing Installations

Running Multiple Versions Simultaneously

You can run multiple driver versions for comparative and diagnostic purposes. Take the following action to proceed:

Single-Tier & Express Edition Drivers

1. Shutdown your License Manager, if you have OpenLink 6.0 drivers installed.
2. Install your new drivers in a separate directory.
3. Place your new license files in the /bin sub-directory of the new installation.
4. Restart your License Manager, if you have OpenLink 6.0 drivers installed.


Multi-Tier Drivers

1. Shutdown your License Manager, if you have OpenLink 6.0 drivers installed.
2. Install your new drivers in a separate directory.
3. Place your new license files in the /bin sub-directory of the new installation.
4. Restart your License Manager, if you have OpenLink 6.0 drivers installed.
5. Use a text editor to open the oplrqb.ini files that appear in the /bin sub-directories of both Multi-Tier server component installations.
6. Locate the [Protocol TCP] section. For example:

INI
  [Protocol TCP]
PingWatchdog = No
PingInterval = 600
Listen     = 5000
PortLow    = 5000
PortHigh    = 5025
;IPAddress    = 127.0.0.1


7. Insure that each Listen port references a different, unused TCP/IP port. (Use PortLow for OpenLink 1.x-3.x.)

8. Save any changes to the oplrqb.ini files.

9. Start your Request Brokers.


BE ADVISED: The above instructions may not bring success in all scenarios. The following issues could present challenges that warrant attention from OpenLink Product Support:

1. Differing Windows driver versions may share the same .dll name. This could provide configuration challenges.

2. Some Windows installers may force you to remove an older installation.

3. OpenLink's 1.x and 3.x use UDP ports to broadcast license information. You need to contact Product Support for specialized configuration in this instance.

Upgrades & Pre-Existing Installations

Upgrades & Pre-Existing Installations

Installing New Software on Top of Old Software

You can install new software on top of existing software. However, this is not the preferred course of action, in many circumstances. You should install new software to new directories, if you are attempting to compare software performance or troubleshoot problems.

Uninstalling Our Components

Removing installations of our components takes different steps for different platforms.

Windows

You may use the uninstall utility to remove existing Windows software. You may also use the Add/Remove Programs utility, which appears in the Control Panel.

Mac OS X

The following sequence will cleanly remove all iODBC and Data Access components added by our installers.

  1. Double-click the Uninstall.command script (/Applications/OpenLink/Universal Data Access Drivers (* Tier Edition)). If the script is not present, skip ahead to #3.

  2. Answer the questions posed by the script. Please note that you must answer with the mixed-case, full-word answers. Anything other than `Yes`, `All`, or `Quit`, will be interpreted as `No`, including `y`, `Y`, and `yes`.

  3. Verify that all of the following directories (including contents), and specified individual files, have been removed --

    Example
    /Applications/iODBC
    /Applications/OpenLink*
    /Library/Application Support/iodbc
    /Library/Application Support/openlink
    /Library/Frameworks/iODBC*
    /Library/Java/Extensions/libopljodbc*.jnilib
    /Library/Java/Extensions/opljdbc*.jar
    /Library/Java/Extensions/virtjdbc*.jar
    /Library/LaunchDaemons/com.openlinksw.*
    /Library/ODBC/OpenLink*
    /Library/Receipts/iODBC*
    /Library/Receipts/Opl*
    /Library/Receipts/UDA*
    /Library/Receipts/VIRT*
    /Library/Receipts/Virt*
    /Library/StartupItems/Oplmgr
    /Users/*/Library/Preferences/com.openlinksw*
    /Users/*/Library/Saved Application State/com.openlinksw*
    /private/var/db/receipts/com.openlinksw.*

  4. You can copy and paste the following command into Terminal.app to remove all of the above --

    Shell
    sudo rm -rf /Applications/iODBC /Applications/OpenLink* "/Library/Application Support/iodbc" "/Library/Application Support/openlink" /Library/Frameworks/iODBC* /Library/LaunchDaemons/com.openlinksw.* /Library/ODBC/OpenLink* /Library/Receipts/iODBC* /Library/Receipts/Opl* /Library/Receipts/UDA* /Library/Receipts/VIRT* /Library/Receipts/Virt* /Library/StartupItems/Oplmgr /Library/Java/Extensions/libopljodbc* /Library/Java/Extensions/opljdbc* /Library/Java/Extensions/virtjdbc* /Users/*/Library/Preferences/com.openlinksw* /Users/*/Library/Saved\ Application\ State/com.openlinksw* /private/var/db/receipts/com.openlinksw.*


Unix-like OS -- AIX, HP-UX, Linux, Solaris, etc.

We do not provide an uninstall utility for Unix-like platforms. rm and rmdir should be used to remove existing deployments.

Upgrades & Pre-Existing Installations

Upgrades & Pre-Existing Installations

Performing Upgrades

Express Edition Upgrades

1. Terminate active ODBC connections.
2. Back up your license file.
3. Make sure you have the appropriate version JDK/JRE installed.
4. Perform your upgrade.


Single-Tier Upgrades

1. Terminate active ODBC connections, which use OpenLink's drivers.
2. Back up license files.
3. Back-up existing odbc.ini and openlink.ini files. (Unix Only)
4. Terminate the License Manager service if you use OpenLink 6.0 or newer drivers.
5. Proceed with the upgrade.


Multi-Tier Upgrades
1. Terminate active ODBC connections, which use OpenLink's drivers.
2. Stop your Request Broker and License Manager services. (License Managers are an OpenLink 6.0 and higher feature.)
3. Back-up your license and oplrqb.ini files.
4. Back-up odbc.ini files. (Unix Client Installs Only.)
5. Proceed with their upgrades.


BE ADVISED: Some installers present two options: 1) Upgrade Driver Name, 2) Install New Driver. The first option should overwrite older drivers. DSNs that use those drivers will be affected. They should be migrated to the new driver. However, to insure the integrity of existing DSNs, choose the second option. This option installs the new driver alongside the old driver. Pre-existing DSNs should not be affected in any way.

Upgrades & Pre-Existing Installations

Upgrades & Pre-Existing Installations

Reasons to Upgrade

Consultants should encourage end-users to upgrade to the latest software version. The latest software contains desirable new features and fixes for bugs. Additionally, support options are limited, when legacy software is involved. Development does not back-patch legacy bugs, and Support staff may have difficulties recreating legacy problems.

The following table lists new features for recent software builds:

Build Features
4.x ODBC 3.5 compliancy. Multi-Threaded client & server components. Substantially-revised communications layer.

5.x Unicode support. Zero Config. Best communications layer.

← Oracle ODBC driver