How To Install and Configure the Lite Edition ODBC-to-JDBC Bridge Drivers (macOS)

Pre-Installation Guide

  1. You must have a Java Runtime Environment (JRE) that is compatible with the Single-Tier (Lite Edition) ODBC Driver for JDBC Data Sources.
    • Generally, the latest JVM from http://java.com/ is the best choice.
    • If using a 64-bit ODBC Driver, you must have a 64-bit JVM.
  2. You must possess third-party or native JDBC drivers that connect to your target database.
  3. If your 3rd party JDBC Driver connection attempt isn't successful, check that the JDBC driver jar file (or a symbolic link to it) is included in the active $CLASSPATH.
  4. Note, supporting Java libraries (or links to them) may also need to be referenced by this variable value.
  5. Finally, directories containing other supporting libraries may need to be referenced by other shared library environment variables (e.g., LD_LIBRARY_PATH, LIBPATH, SHLIB_PATH).

Installation Guide

  1. Download the Lite Edition (Single-Tier) ODBC Driver for JDBC Data Sources disk image (.dmg) file.
  2. Double-click the disk image file to open it.
  3. Run the installer .mpkg file to start the installation process.
  4. After the driver is installed, you will be prompted to locate a license file.
  5. NOTE: If a correctly named file already exists in $OPL_LICENSE_DIR, /Library/Application Support/OpenLink/Licenses/, you will not see this dialog. If the existing file is not valid (evaluation has expired, it's for a different OS, it permits insufficient processor cores, etc.), you will need to manually apply a valid license file after installation is completed.
  6. NOTE: In some environments, this dialog may be hidden by the Installer.app or other windows on your Mac. Please minimize, hide, and/or move windows until you can see and act on this dialog. If you do not answer this dialog, the installation will not complete properly, and the driver will not function as desired.
  7. If a license file already exists on the machine, select the 'use existing' option. (Previously generated license files may be re-downloaded from your ODS-Briefcase data space.)
  8. If you need to obtain a new trial or permanent license file, select the 'try or buy' option, which will load a relevant web page from which you can obtain a license file.
  9. Click Next and continue through the dialog until Installation is complete.
  10. Click the Finish button.
To configure an ODBC DSN, follow these steps:
  1. Run the OpenLink iODBC Administrator located in the /Applications/iODBC folder.
  2. Click the System DSN tab.
  3. Click the Add button.
  4. Select the OpenLink JDBC Lite Driver from the list of available drivers.
  5. 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.
  6. Click Finish.
The Data Source tab prompts for a Data Source Name and an optional description. The Connection Tab requires the following minimum requirements to connect to your JDBC data source:
  • JDBC Driver - The class name for your third-party JDBC driver, e.g., virtuoso.jdbc3.Driver
  • URL String - The JDBC connection URL for your third-party JDBC driver
  • Username - The username for your JDBC database
The Options tab displays additional parameters that can be configured for the connection, such as:
  • Row Buffer Size - 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 - Suppresses the ODBC "Username" and "Password" login dialog boxes when interacting with your ODBC DSN from within an ODBC compliant application.
  • Read Only connection - Specifies whether the connection is "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.
  • No 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".
  • SQLStatistics disabled - Check this box to have SQLStatistics() return an empty result set. Use this if the underlying database does not support retrieval of statistics about a table (e.g., what indexes it has).
  • No support of search string escape - If set, the call SQLGetInfo(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 - 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.
  • 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 value should be "SQL Server").
  • Initialization SQL - Lets you specify a file containing SQL statements that will be run automatically against the database upon connection.
  • 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. Before enabling this option, the table oplrvc must be created using the appropriate script for the target database.
  • 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.
  • Disable AutoCommit - Changes the default commit behavior of the OpenLink driver. The default mode is AutoCommit (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 result set generated from an erroneous query is very large. The limit is not normally reached.
  • Defer fetching of long data - Defers fetching of LONG (BINARY, BLOB, etc.) data unless explicitly requested in a query. This can provide significant performance increases when fields in a query do not include LONG data fields.
  • Multiple Active Statements Emulation - Enables the 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 the Finish button to save your new Data Source Name.

Configuration Guide

  1. To configure an ODBC DSN, run the OpenLink iODBC Administrator located in the /Applications/iODBC folder:
  2. Click the System DSN tab, and then click the Add button.
  3. Select the OpenLink JDBC Lite Driver from the list of available drivers.
  4. 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.
  5. Click Finish.
  6. The Data Source tab prompts a Data Source Name and optional description.
    • DSN: A brief and meaningful title for your Data Source Name
    • Description: An optional description for your Data Source Name
  7. The Connection Tab takes the minimum requirements that are necessary to connect to your JDBC data source.
    • JDBC Driver: The class name for your third-party JDBC driver, e.g., virtuoso.jdbc3.Driver
    • URL String: The JDBC connection URL for your third-party JDBC driver
    • Username: The username for your JDBC database
  8. The Options tab displays additional parameters that can be configured for the connection.
    • Row Buffer Size: 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: Suppresses the ODBC "Username" and "Password" login dialog boxes when interacting with your ODBC DSN from within an ODBC compliant application.
    • Read Only connection: Specifies whether the connection is "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.
    • No 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"".
    • SQLStatistics disabled: Check this box to have SQLStatistics() return an empty result set. Use this if the underlying database does not support retrieval of statistics about a table (e.g. what indexes it has).
    • No support of search string escape: If set, the call SQLGetInfo(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: If set, this option overrides the size of SQL_CHAR column type returned by the database withthe value set in the text box (in bytes). With a default value of 0, the driver uses the size returned by the database.
    • 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 value should be "SQL Server").
  9. Click Continue to view additional preferences that can be set for the connection.
    • Initialization SQL: Lets you specify a file containing SQL statements that will be run automatically against the database upon connection.
    • 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.
    • 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.
    • Show remarks: Affects output from the SQLColumns() ODBC API call. Use this option in conjunction 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.
    • Disable autocommit: Changes the default commit behavior of the OpenLink driver. The default mode is AutoCommit (box unchecked).
    • Disable rowset size limit: Removes OpenLink's default 100 rowset restriction.
    • 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 the query do not include LONG data fields.
    • Always include VIEWS in table list:
    • Always include all types in table list:
    • Custom Catalogue Views: Dictates whether custom OpenLink views are used toreturn metadata for certain ODBC catalog functions: SQLForeignKeys(), SQLPrimaryKeys(), SQLProcedureColumns(), SQLProcedures(), and SQLSpecialColumns(). These custom views provide more metadata than is normally provided by the standard Oracle data dictionary views.
    • User's own tables first in SQLTables: This option is specific to OpenLink's Oracle drivers. It prompts the SQLTables() ODBC API call to display the connected user's tables first in table lists. The default ordering is alphabetical.
    • Count stored procedure parameters in SQL Procedures: This parameter is specific to the Oracle data source. It affects the output from SQLProcedures() when "Custom Catalog Views" is enabled.
  10. Click the Finish button to save your new Data Source Name.
  11. Click the Finish button to save your new Data Source Name.