How to Install and Configure the Multi-Tier Edition ODBC Driver for Oracle, on macOS
A guide for installing the Multi-Tier Edition ODBC Driver for Oracle data sources, on macOS.
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
- Understanding the Oracle native client
- When do I need the Oracle native client?
- Obtain the Oracle native client (a.k.a. "Net8", "Net9", "Net10")
- Configure the Oracle native client
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:
$ ./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 - ProductionUnderstanding 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:
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
- Log in to the Oracle DBMS server.
-
su - oracle
- Execute the
ingresassociated with the oracle user.
-
cd $ORACLE_HOME/bin
- Run the
netcaprogram.
- Wait for the Welcome page to appear.
- Select "Local Net Service Name Configuration."
- Select Next.
- Select the Test option.
- Select Next.
- Use the drop-down menu to display a list of Oracle net service names available on the machine.
- Exit the utility.
On Windows
- Log in to the machine that hosts the Oracle DBMS.
- Launch the Net Configuration Assistant (Start menu >> Programs >> Oracle).
- Click the Local Net Service Name configuration radio button.
- Click Next.
- Click Test.
- Click Next.
- Use the drop-down menu to display a list of Oracle net service names available on the machine.
- 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:
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:
CHAR
VARCHAR
VARCHAR2Configuring 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:
$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.
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:
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:
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.
Server components
Data Source Name Configuration Guide
Configuration of the Lite Edition (Single-Tier) ODBC Driver for Oracle 10g Data Sources, for macOS
- To configure an ODBC DSN, run the OpenLink iODBC Administrator located in the /Applications/iODBC folder.
- Click the System DSN tab.
- Click the Add button. Then, select the OpenLink Oracle Lite Driver from the list of available drivers.
- Click Finish.
- The Data Source tab prompts for information that identifies the Oracle database server and listen port.
- DSN: A brief and meaningful title for your Data Source Name
- Description: An optional description for your Data Source Name
- Oracle Directory: Provides the full path to your local Oracle or Oracle client installation
- Connection String: Your Oracle connection URL. Takes the following form:
//oracle_server_ip_address:oracle_listening_port/oracle_SID
For example:
//openhp2.OpenLinksw.com:1521/ORCL
- Click Continue.
- The Connection tab takes a combination of required and optional parameters to make a connection to the target database:
- Username: A Oracle username
- Row Buffer Size: This attribute specifies the number of records to be transported over the network in a single network hop. Values can range from 1 to 99.
- Hide Login Dialog: 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.
- OCIPrefetchRows: Sets the number of rows to be prefetched.
- OCIPrefetchMemory: Sets the memory allocated for rows to be pre-fetched.
- 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 value should be "SQL Server".
- Click Continue to view additional preferences that can be set for the connection.
- The third tab contains settings that are not required for a basic 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.
- 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.
- 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 to return 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.
- Click the Finish button to save your new Data Source Name.
Client components
Pre-installation Guide
Pre-Installation Requirements for the Enterprise Edition (Multi-Tier) Generic Client ODBC Drivers for macOS Clients
- There are no DBMS requirements associated with the Enterprise Edition (Multi-Tier) Generic Client ODBC Drivers.
- The Enterprise Edition (Multi-Tier) Generic Client ODBC Drivers are distributed as Universal Binaries, automatically supporting all 32-bit and 64-bit clients, with both PowerPC- and Intel-based binaries.
Installation Guide
Installation of the Enterprise Edition (Multi-Tier) Generic Client ODBC Drivers, on macOS
- Download the OpenLink Generic ODBC Driver for macOS disk image (.dmg) file.
- Double-click the disk image file to open it.
- Run the installer .mpkg file located inside the disk image.
Configuration Guide
Configuration of the Enterprise Edition (Multi-Tier) Generic Client ODBC Drivers, on macOS
-
To configure an ODBC DSN, perform the following steps:
- Run the OpenLink iODBC Administrator located in the
/Applications/iODBCfolder. - Click the Add button on the System DSN tab.
- Select the OpenLink Generic ODBC Driver from the list of available drivers.
- 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.
- Provide a suitable DSN name and optional description for the Data Source.
- Click the "Manual settings..." link in the Server field and specify the host name and port on which the OpenLink Request Broker listens. Click OK to exit the host and port dialog.
- Click Continue to proceed.
- Run the OpenLink iODBC Administrator located in the
-
The Connection tab takes the minimum parameters required to make a connection to the target database:
- Domain - The value must match a [Domain Alias], which is contained in the Server's Session Rules Book.
- Name - May take several settings, depending on the Domain (e.g., database name, JDBC driver classname, Oracle SID, etc.).
- Server - This field passes DBMS-specific connection parameters. Review Complete Settings and Usage for Connect Options
- Review Complete Settings and Usage for Connect Options.
- Click Continue to proceed.
-
On the Connection tab, input the following:
- Username - A valid database uid.
- Password - A valid database password.
- Click Continue.
-
The Options tab contains settings that are not required for a basic connection:
- 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.
- Disable interactive login - Suppresses the ODBC "Username" and "Password" login dialog boxes when interacting with your ODBC DSN from within an ODBC compliant application.
- 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.
- 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.
- Click Continue.
- Click on the 'Test Data Source button to make a connection to the database and verify Client-to-Broker connectivity.
Walkthrough with screenshots
Installation walkthrough with screenshots
The same installation, step by step, with the screens you will see.
OpenLink Multi-Tier Server Components Installation and Configuration
OpenLink Multi-Tier Server Components Installation and Configuration
Installation
The OpenLink Multi-Tier server components installers for Mac OS X are distributed as Disk Image (.dmg) files.
You need to download one Multi-Tier Request Broker installer and one agent installer designed to connect to the database that you want to query.
Then, run the following installation procedure for each of the two installers.
Double-click the disk image to extract the installer .mpkg file:
You will encounter a warning message that will ask you if you are sure that you want to install the software.
Click Continue:
This is the Welcome dialog for the OpenLink Multi-Tier Request Broker:
Review the Read Me file for installation requirements and known issues:
Read the Software License Agreement before continuing your installation:
Agree to the terms set forth in the license:
Use the Browse or Choose button to locate a locate a local file on your local Mac.
Newer installers should have a checkbox that allows you to implement licenses after installation has occurred.
Select a destination volume for the driver installation:
Choose to perform a custom or default installation of the driver:
If you chose the custom option, select which of the following components to install:
Note: The software must be installed as a user with Administrative privileges on the machine:
Your installer may prompt you to specify the port on which the OpenLink Request Broker service will listen.
This is the port on which the OpenLink server components will listen for ODBC connections.
The default is 5000.
There may also be check a checkbox to automate broker startup.
Your installer may prompt you to specify the port on which the OpenLink Admin Assistant will run.
The Admin Assistant is a Web-based GUI that enables you to configure your OpenLink server components.
The default is 8000.
You may also configure your Admin Assistant username and password.
Both default to admin.
The installer may ask you if you want to launch your Admin Assistant before the installer completes.
The installation is complete:
Configuration
OpenLink's server components require minimal configuration. In most instances, the installation process includes steps to ensure that the primary configuration file (oplrqb.ini) is configured for basic connectivity. Use the following steps to check and enhance your individual agent settings.
Launch the Multi-Tier Administrative Assistant in a Web browser.
The URL convention is:
http://ip_address_of_machine_with_mt_server components:mt_admin_port
Click the Server Components Administration link.
Click the Database Agent Administration link.
Click the Database Settings by Wizard link.
Login with your Administrative username and password.
Both default to admin.
Select the configuration section that you want to review.
The naming convention for default database agent configuration sections is generic_ followed by an abbreviation for the OpenLink agent.
The Agent Details dialog allows you to rename the default agent configuration section and provide an optional comment.
This is an advanced feature that should not be pursued for basic connectivity.
Click Edit to continue.
The first Connection Parameters dialog allows you to hardcode a single username and password for all connections that use this agent configuration section for ODBC connectivity.
- User Name - A valid database uid.
- Password- A valid database password.
Click Next to continue.
The second Connection Parameters dialog allows you to hardcode a single Database, Read/Write access mode, and Connection Options for all connections that use this agent configuration section for ODBC connectivity.
- Database Name- Takes a database name or Oracle SID.
- Read Only specifier- Specifies whether the connection is Read-only or Read/Write.
- Connect Options- This field passes parameters that enable users to connect to MySQL, PostgreSQL, Microsoft SQL Server, and Sybase databases anywhere on the network. It also passes parameters that enable users to connect to any DBMS that does not reside on the same machine as the OpenLink Request Broker and Agent. Review Complete Settings and Usage for Connect Options
Click Next to continue.
The second Connection Parameters dialog allows you to hardcode Server Options, a Domain, and a Host Name for all connections that use this agent configuration section for ODBC connectivity.
- Server Options- Server Options are typically Progress specific options which are passed to the database at startup. You want to ensure that the options passed to the actual database match the options passed in the Server Options field or ServerOptions parameter. These options must also match actual options passed to the database at startup time.
- Domain- The value must match a [Domain Alias], which is contained in the Server's Session Rules Book. This Alias typically represents the name and version of an OpenLink Agent. That agent version may differ from the DBMS version to which it connects. Note that advanced users may create custom domain names that follow their own, desired conventions.
- Host Name- Host name or IP address of the machine that contains the OpenLink Request Broker.
Click Next to continue.
The Secure SSL Connection dialog allows you to designate an SSL certificate.
It also allows you to enforce SSL-only connectivity.
- SSL Key File- Passes the location of an SSL certificate.
- SSL Required - Check to force the broker to accept only SSL-based connections.
Click Next to continue.
The first Application & Database Specific Parameters dialog allows you to enable opsyslogin.
Opsyslogin forces connections to authenticate their usernames and passwords against the operating system instead of the database.
- Require Operating System Identity- If checked, the Request Broker will test to see that the username and password which are supplied to it are valid for the machine. If the authentication parameters are valid, it will start the database agent under the identity of the user. If unchecked, the username and password will be passed to the backend database for authentication.
Click Next to continue.
The second Application & Database Specific Parameters dialog allows you to disable autocommit and enable Jet Engine catalogs.
- No auto commit on startup- Changes the default commit behaviour of the OpenLink driver. The default mode is AutoCommit (box unchecked).
- Jet engine catalogs- Check this checkbox if you intend to use this driver with Microsoft Access. 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 +jetfix.
Click Next to continue.
The third Application & Database Specific Parameters dialog allows you to limit your rowset size and pass an initial SQL script.
- Limit result set to n records- 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 script- Lets you specify a file containing SQL statements that will be run automatically against the database upon connection.
Click Next to continue.
The Startup parameters screen enables you to identify the OpenLink database agent to use for your ODBC connections.
It also allows you to hardcode specific environment variables for the connection.
Proper environment variables are essential for ODBC connectivity.
- Executable name- Allows you to choose which OpenLink agent should serve all connections associated with this agent configuration section.
- Environment Variables- OpenLink's agents are written using the database native CLI. Consequently, they use the same environment variables that database native clients use to connect to the relevant DBMS. Use this box to set them. Complete List of Variables by Database
Click Next to continue.
The Process Mapping dialog enables you to set your agent reuse rules.
Reuse rules dictate whether or not an agent will be used for subsequent connections.
Reuse of agents reduces overhead associated with agent spawning.
Click Next to continue.
The Save Settings dialog allows you to save your new agent settings.
Check the Reinitialize checkbox to reinitialize the OpenLink Request Broker with these settings.
Your new settings will not be unforced unless the Request Broker is restarted or reinitialized.
Click Save to complete the agent configuration process.
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
Installation and Configuration of the Enterprise Edition (Multi-Tier) Generic Client ODBC Drivers, on Mac OS X
Review Preinstallation Documentation: Enterprise Edition (Multi-Tier) ODBC Client Components
Installation
- The OpenLink Generic ODBC Driver for Mac OS X is distributed as a Disk Image (.dmg) file:
- Double-click the disk image to extract the installer .mpkg file:
- You will encounter a warning message that will ask you if you are sure that you want to install the software.
Click Continue:
- This is the Welcome dialog for the OpenLink Generic ODBC Driver:
- Review the Read Me file for installation requirements and known issues:
- Read the Software License Agreement before continuing your installation:
- Agree to the terms set forth in the license:
- Select a destination volume for the driver installation:
- Choose to perform a custom or default installation of the driver:
- If you chose the custom option, select which of the following components to install:
- Note: The software must be installed as a user with Administrative privileges on the machine:
- The installation is complete:
Configuration
- To configure an ODBC DSN, run the OpenLink iODBC Administrator located in the /Applications/iODBC folder:
- Click the Add button that appears on the System DSN tab.
- Then, select the OpenLink Generic ODBC Driver v6.0 from the list of available drivers.
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:
- Provide a suitable DSN name and optional description for the Data Source:
- Click the "Manual settings..." link in the Server field and specify the host name and port on which the OpenLink Request Broker listens.
- Click OK to exit the host and port dialog.
Click Continue to proceed.
- The Connection tab takes the minimum parameters required to make a connection to the target database:
- Domain - The value must match a [Domain Alias], which is contained in the Server's Session Rules Book.
This Alias typically represents the name and version of an OpenLink Agent.
That agent version may differ from the DBMS version to which it connects.
Note that advanced users may create custom domain names that follow their own, desired conventions.
- Name - May take several settings, depending on the Domain -- database name, JDBC driver classname, Oracle SID, etc.
Displayed text entry field name will generally change appropriately.
- Server - This field passes DBMS-specific connection parameters.
Review Complete Settings and Usage for Connect Options
- Connect now to verify that all settings are correct - Will attempt to connect to the database, after you input Username and Pasword and click Continue.
- Username - A valid database uid.
- Password - A valid database password.
- Domain - The value must match a [Domain Alias], which is contained in the Server's Session Rules Book.
This Alias typically represents the name and version of an OpenLink Agent.
That agent version may differ from the DBMS version to which it connects.
Note that advanced users may create custom domain names that follow their own, desired conventions.
- Click Continue.
- The options tab contains settings that are not required for a basic connection:
- 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.
- 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.
- 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.
- Read Only connection - Specifies whether the connection is "Read-only." Make sure the checkbox is unchecked to request a "Read/Write" connection.
- Click Continue.
- Click on the 'Test Data Source' button to make a connection to the database to verify Client-to-Broker connectivity:
Next...
- Test your DSNs with our sample program.
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.
Administering the Multi-Tier components
ZeroConfig DSNs, the Admin Assistant and custom aliases, with screenshots.
Configuring Multi-Tier ZeroConfig DSNs by Wizard
The Multi-Tier Admin Assistant provides an HTTP-based interface to the server settings including those found in the Rulebook. This interface has been extended to support configuration of the ZeroConf settings in the Server Component Administration section, called Zero Config Administration.
The Zero Config Administration pages are very much like Client Data Source configuration pages -- they have the same layout and descriptions as they are essentially data sources stored on the server.
To make a new Zero Configuration entry, follow this sequence:
- From the Server Components Administration menu, chose the Zero Config Administration sub menu, and then Zero Config Administration by Wizard.
A list of current configurations is shown:
- Press the Add button.
Enter a suitable name for the configuration:
- Enter the database details.
The parameters are identical to those in the ODBC DSN configuration wizard.
For each parameter you wish to configure, you need to enable it by checking the box on the left side.
Each field is disabled until the check box is marked.
- Enter the additional connection parameters.
In same way as previous page, each parameter field needs to be enabled by the check mark on the left side.
- The complete configuration parameters are now shown:
- The Zero Config entry now appears in the list:
Configuring Multi-Tier ZeroConfig DSNs by Form
In the Server Components Administration menu, drill down to Zero Config Administration --> Zero Config Administration by Form.
The list of current configurations will be shown.
Chose one to edit or delete, or click Add to make a new configuration.
All parameters required in the form are the same as for any other DSN configuration. The Host and Port fields are not available, because this information is supplied by the Request Broker hosting the service.
Configuring a Multi-Tier Client to use a ZeroConfig DSN through the Windows ODBC Driver Manager
When configuring a DSN in the Windows ODBC Driver Manager, the Server field will offer a drop-down menu of available Zero Config targets --
Configuring a Multi-Tier Client to use a ZeroConfig DSN through the HTTP-based Admin Assistant
When configuring a DSN in the HTTP-based Admin Assistant, the Server field will offer a drop-down menu of available Zero Config targets --
During the configuration of a DSN in the Admin Assistant it is currently not possible to dynamically discover and present the Zero Config entries. However, you can manually put a Zero Config entry in the Server field.
Administration of the Multi-Tier Request Broker through Admin Assistant Wizards
- Specify the location of your Request Broker and its dependent components.
Also set restrictions on number of Agents, and number of connections.
Click the Next button. - Linger Timeout: The number of seconds an OpenLink Agent without connections will linger before being terminated by the OpenLink Request Broker, Specify 0 here to disable lingering.
Lingering is a feature for avoiding repetative load/unload overhead of agents that are frequently used for short, quick concurrent open/close connections.
This setting is global to all agents. For specific agent settings, use theLingerTimeoutvalue in the agent environment section.
Set Resolving of IP addresses to hostnames. The logging will show the hostname instead of the IP number if this option is selected. Switch off hostname lookup to avoid possible delays when frequently looking up unknown (new) IP numbers through a distant uncached DNS table. This parameter will have a direct affect on the type of match that is to be used for the StartupBy, ShutdownBy and ShutdownFrom parameters under the Security section.
Click the Next button. - To help with troubleshooting, turn on session logging and extra information.
Or run the broker in foreground mode to view the trace.
Then click on the Next button.
- Enter buffer size values for the inbound and outbound network messages for each OpenLink Agent (it is advisable to take the default values presented).
Then click the Next button.
- Enter values for Database Agent session initialization, Broker Contact, and initialization failure retry counts by entering values into the respective fields as depicted below (it is advisable take the defaults).
Then click on the Next button.
- Check the related boxes presented in order to select the Network Transport Protocol to be used by your Request Broker and Database Agents when communicating with your OpenLink Data Access Clients.
Then click on the next button.
- You can choose to enable the OpenLink Ping WatchDog.
All OpenLink components automatically use the keep-alive feature built in to most current implementations of TCP/IP stack.
If keep-alive is not available the Ping WatchDog can be enabled in attempt to compensate for this.
Click the Next button to continue.
- If you have more than one Network Interface Card (NIC) installed on your OpenLink Server machine, then you can enter a value in the Force IP Address field that represents the IP address that you want the Request Broker to listen at.
- Enter the port number on which the OpenLink Request Broker will listen for client connections.
Each OpenLink Request Broker running on the same host must have a unique port number assigned to it.
You can also designate port number ranges to be used by the Broker to advertise other OpenLink services (e.g., JDBC Agent used by OpenLink Drivers for JDBC). Once completed, click the Next button to continue. - Click on the Save button to save your changes permanently.
- Click the Exit button to leave the Broker Settings Wizard.
Administration of the Multi-Tier Request Broker through Admin Assistant Forms
You can configure your Request Broker via Forms or Wizards.
You select this option from the Admin Assistant and you will be presented with a screen similar to the snapshot below.
Each Broker session settings field contains a description of the values that need to be entered into each of the forms fields. In addition a brief description of the use of each of these values is provided below each field.
Creating Custom Aliases for use by Multi-Tier Data Access Clients
Understanding how to maintain Session Aliases is a critical part of understanding how to create session rules. You can create, modify, edit, and delete Session Aliases in two ways: you either use the Admin Assistant's GUI interface, or you manually edit the session rulebook using a text editor (only recommended for advanced users).
The steps that follow guide you through the Session Alias management process using the Admin Assistant's GUI. Before performing any of these steps you may need to start the Admin Assistant, by following the steps below:
- Start the Request Broker
- Start a Web Browser session
- Enter the appropriate URL into your browser (adjusting the port number, if you changed the Admin Assistant port number during installation):
- If the Request Broker is running on the same machine as your web browser, enter:
URL http://localhost:8000/
- If the Request Broker is running on another machine than your web browser, enter:
Example http://<hostname or IP address>:8000
- If the Request Broker is running on the same machine as your web browser, enter:
Domain Aliases
The steps that follow show you how to manage Domain Aliases:
- Follow the "Server Components Administration"->"Session Rules Administration"->"Session Rules Book Aliases"->"Edit Domain Aliases" menu tree which brings you to a screen identical to the one depicted below.
The Admin Assistant presents you with a list of pre-configured Domain Aliases, click on the "Edit" hyperlink to change settings, the "Remove" hyperlink to delete an Alias, and the "Add" button at the bottom of the screen to create a new Domain Alias. - The example below assumes that you are modifying a Domain Alias named "ora8" with the attribute values "Oracle 8".
This implies that you want to take note of Domain Connection Attributes from a Multi-Tier Client that start with the value "Oracle 8" evaluation against a mapping rules template.
Once you have completed your input click the "Update" button.
- You then commit your changes to the rule book by clicking on the "Reinitialize the Multi-Tier Request Broker with these settings" hyperlink.
See screen shot below:
- Admin Assistant confirms commitment of your changes to the rule book.
User Aliases
The steps that follow show you how to manage User Aliases using the Admin Assistant:
- Follow the "Server Components Administration"->"Session Rules Administration"->"Session Rules Book Aliases"->"Edit User Aliases" menu tree which brings you to a screen similar to the one depicted below.
The Admin Assistant presents you with a list of pre-configured User Aliases if any exist, if this is your first time there will be not items listed. Click on the "Add" hyperlink to create a new User Alias. - The example below assumes that you are creating an User Alias named "Sales" with attribute values of "Test" or "Mary", the use of the caret symbol (character "^") and the Dollar symbol indicate the start and end of regular expression evaluation values respectively.
The Pipe symbol (character "|") indicates an OR condition.
Thus the entry depicted below implies that you want to take note of User Connection Attributes from a Multi-Tier Client that hold the values "Test" or "Mary" for evaluation against a mapping rules template.
Once you have completed your input click the "Add" button.
- You then commit your changes to the rule book by clicking on the "Reinitialize the Multi-Tier Request Broker with these settings" hyperlink.
See screen shot below:
- Admin Assistant confirms commitment of your changes to the rule book.
OpSys (Operating System) Aliases
The steps that follow show you how to manage OpSys Aliases using the Admin Assistant:
- Follow the "Server Components Administration"->"Session Rules Administration"->"Session Rules Book Aliases"->"Edit Operating System Aliases" menu tree which brings you to a screen identical to the one depicted below.
- The Admin Assistant presents you with a list of pre-configured OpSys Aliases if any exist, if this is your first time no items will be listed.
Click on the "Add" hyperlink to create a new OpSys Alias.
- The example below assumes that you are creating an OpSys Alias named "ClientOS" with attribute values of "win32" or "unix".
The Pipe symbol (character "|") indicates an OR condition.
Thus the entry depicted below implies that you want to take note of OpSys Connection Attributes from a Multi-Tier Client that start with the values "win32" or "unix" for evaluation against a mapping rules template.
Once you have completed your input click the "Add" button.
- Commit your changes to the rule book by clicking on the "Reinitialize the Multi-Tier Request Broker with these settings" hyperlink.
See screen shot below:
- Admin Assistant confirms commitment of your changes to the rule book.
Machine Aliases
The steps that follow show you how to manage User Aliases using the Admin Assistant:
- Follow the "Server Components Administration"->"Session Rules Administration"->"Session Rules Book Aliases"->"Edit Operating Machine Aliases" menu tree which brings you to a screen identical to the one depicted below.
- The Admin Assistant presents you with a list of pre-configured OpSys Aliases if any exist, if this is your first time no items will be listed.
Click on the "Add" hyperlink to create a new Machine Alias.
- The example below assumes that you are creating an Machine Alias named "MyNetwork" with an attribute value of "123.123.123".
This implies that you want to take note of Machine Connection Attributes from a Multi-Tier Client that start with the value "123.123.123" (you would do this to identify the Network portion of the client machines IP address).
Once you have completed your input click the "Add" button.
- Commit your changes to the rule book by clicking on the "Reinitialize the Multi-Tier Request Broker with these settings" hyperlink.
See screen shot below:
- Admin Assistant confirms commitment of your changes to the rule book.
Application Aliases
The steps that follow show you how to manage User Aliases using the Admin Assistant:
- Follow the "Server Components Administration"->"Session Rules Administration"->"Session Rules Book Aliases"->"Edit Application Aliases" menu tree which brings you to a screen identical to the one depicted below.
- The Admin Assistant presents you with a list of pre-configured Application Aliases, click on the "Edit" hyperlink to change settings, the "Remove" hyperlink to delete an Alias, and the "Add" button at the bottom of the screen to create a new Application Alias.
- The example below assumes that you are modifying an Application Alias named "msoffice" with attribute values of "MSACCESS" or "EXCEL" or "MSQRY32".
The Pipe symbol (character "|") indicates an OR condition.
Thus, the entry depicted below implies that you want to take note of Application Connection Attributes from a Multi-Tier Client that hold the values "MSACCESS" or "EXCEL" or "MSQRY32" for evaluation against a mapping rules template.
Once you have completed your input click the "Update" button.
- Commit your changes to the rule book by clicking on the "Reinitialize the Multi-Tier Request Broker with these settings" hyperlink.
- Admin Assistant confirms commitment of your changes to the rule book.
Determining The Values of Multi-Tier Client Generated Connection Attributes
To manage Aliases for non-user-configurable Connection Attributes, determine the relevant values with the following steps:
- Start the Request Broker in Debug Mode
- Then make a connection from your Multi-Tier Client
- Your Request Broker's debug window will contain something similar to the following:
Shell oplrqb: client-machine.YourDomain called (123.123.123.100.1510) oplrqb: request: domain=Oracle 8 database= serveropts= oplrqb: connectopts= user= opsys=win32 readonly=0 oplrqb: application=OPLSCAN processid=384
- Take note of the values assigned to the following Connection Attributes: opsys, readonly, and application. Apply these values to the appropriate Aliases that your are attempting to configure.
Advanced Server Components Configuration (Multi-Tier)
Advanced Server Components Configuration (Multi-Tier)
Server-side Configuration for SSL
In order to make use of this functionality, you need to create a certificate on the server running the request broker. On Unix platforms we have provided a bin/mkcert.sh script as part of the installation. On other platforms you may have to run openssl by hand or use another system to generate the PEM file (such as generating it on a unix server and copying the files across).
A sample run of the mkcert.sh script, showing the various questions it asks to identify your organization, follows:
bash$ cd /usr/openlink/bin/
bash$ ./mkcert.sh mykey
Checking OpenSSL: OpenSSL 0.9.7d 17 Mar 2004
Generating a 512 bit RSA private key
.++++++++++++
.......++++++++++++
writing new private key to 'mykey.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Host name (externally visible) [host.example.com]:purple
Organization (eg. company) [OpenLink Software]:
Organizational Unit [Research & Development]:Product Development
State or Province Name (full name) []:Surrey
Locality Name (eg. city) []:Croydon
Country Name (2 letter code) [US]:UK
1024 semi-random bytes loaded
Generating DH parameters, 512 bit long safe prime, generator 2
This is going to take a long time
..+........................+...........................+.......+...........
[]
.+.....++*++*++*++*++*++*
subject= /CN=purple/O=OpenLink Software/OU=Product Development/ST=Surrey/L=Croydon/C=UK
notBefore=Nov 12 10:43:14 2004 GMT
notAfter=Nov 10 10:43:14 2014 GMT
MD5 Fingerprint=E0:DB:53:E7:E7:68:21:53:1C:2B:1E:8E:D9:BF:25:F0
Created private key parameters in mykey.key
Created public key parameters in mykey.cer
bash$
Having created the key-pair, you now need to tell the request broker to use them.
This requires the following lines to be present in the rulebook (oplrqb.ini):
[Request Broker]
....
SSLKeyFile = mykey.pem
SSLRequired = No
The SSLKeyFile is the filename of the key you just created; to deny connections without SSL, set SSLRequired
Yes instead.
You can also put these options in the individual database agent sections, such that one key is used for e.g.
Ingres, and another for SQL Server, or one for your sales database and another for people coming in from VPN IP#s (by editing the mapping rules to match on a per-IP# basis).
For example:
[generic_sqlserver]
.....
SSLKeyFile = mykey-sqlserver.pem
SSLRequired = Yes ; All SQLServer connections
MUST use SSL
As an alternative to editing oplrqb.ini by hand, you can use the web-based Administrator GUI, either the form or wizards, to set the SSL Key File and SSL Required fields, thus:
Figure: 1.
Server-side SSL Configuration of Request Broker via Web Assistant
Figure: 2.
Server-side SSL Configuration at the database agent level via Web Assistant
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
- Log in to your client machine.
- Use the sh or bash command to open a bourne or bash shell.
- cd into the root of your Single-Tier driver installation.
- Execute this command:
. ./openlink.sh
- Execute this command:
echo $ORACLE_HOME
- Use export to set
ORACLE_HOMEto the root of your local Instant Client Installation, as needed.
- Use the echo command to display your library path.
For example:
- AIX:
echo $LIBPATH
- HP-UX:
echo $SHLIB_PATH
- Other:
echo $LD_LIBRARY_PATH
- AIX:
- Use export to append the root of the Instant Client installation to your library path, as needed.
- cd into the bin sub-directory of your Single-Tier driver installation.
- Use a text editor to open the
openlink.inifile.
- 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
- Pass the root of your Instant Client installation as
ORACLE_HOME.
- Save your changes and exit the file.
Single-Tier on Windows
- Log in to your client machine.
- Expand the Windows Control Panel.
- Locate the System utility.
- Click on the Advanced tab.
- Click the Environment button.
- Scroll through the User and System variables.
- Set an ORACLE_HOME variable that points to the root of the local Instant Client installation, if it does not exist.
- Add the root of the Instant Client installation to PATH, if it is not already present.
- Exit the System utility.
Multi-Tier
Multi-Tier with Oracle Database Agent on a Unix-like OS
- Log in to the machine that contains your Multi-Tier server components.
- Use the sh or bash command to open a bourne or bash shell.
- cd into the root of your Multi-Tier installation.
- Execute this command:
. ./openlink.sh
- Execute this command:
echo $ORACLE_HOME
- Use export to set
ORACLE_HOMEto the root of your local Instant Client Installation, as needed.
- Use the echo command to display your library path.
For example:
- AIX:
echo $LIBPATH
- HP/UX:
echo $SHLIB_PATH
- Other:
echo $LD_LIBRARY_PATH
- AIX:
- Use export to append the root of the Instant Client installation to your library path, as needed.
- cd into the bin sub-directory of your Multi-Tier installation.
- Use a text editor to open the
oplrqb.inifile.
- 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
- Pass the root of your Instant Client installation to
ORACLE_HOME.
- Pass the root of your Instant Client installation to the relevant library path variable.
- Ensure no semicolon appears in front of the relevant library path variable.
- Save your changes and exit the file.
- 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
- Log in to the machine that contains your Multi-Tier server components installation.
- Expand the Windows Control Panel.
- Locate the System utility.
- Click on the Advanced tab.
- Click the Environment button.
- Scroll through the User and System variables.
- Set an
ORACLE_HOMEvariable that points to the root of the Instant Client installation, if it does not exist.
- Add the root of the Instant Client installation to
PATH, if it is not already present.
- Exit the System utility.
- Use Notepad to open the
oplrqb.inifile that appears in the bin sub-directory of the Multi-Tier installation.
- 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
- Pass the root of your Instant Client installation to
ORACLE_HOME.
- Pass the root of your Instant Client installation to the relevant library path variable.
- Ensure no semicolon appears in front of the relevant library path variable.
- Save your changes and exit the file.
- Open your Windows Control Panel.
- Locate the Services utility.
(It may be in the Administrative Tools sub-folder.)
- Launch Services.
- Locate the OpenLink Request Broker Service in the list box.
- 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
-
FLOAT(b)specifies a floating point number with binary precisionb. The precision can range from 1 to 126. To convert from binary to decimal precision, multiplybby 0.30103.
- Possible loss of precision
-
FLOATspecifies a floating point number with decimal precision 38, or a binary precision of 126.
-
NUMBERspecifies a floating point number with decimal precision=38.
- Oracle appears to return s
=0, p=0 for a calculated field
- 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
ROLLBACKis 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
- Log in to the machine that hosts the Single-Tier (Lite) drivers.
- Use a text editor to open the
openlink.ini($OPENLINKINI) file that resides in the bin sub-directory of the Single-Tier installation.
- Locate the
[Environment Oracle 10.x]section.
- 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.
- Save your changes and exit the file.
Single-Tier "Lite" Edition on Windows
- Log in to the machine that hosts the Single-Tier "Lite" Edition drivers.
- Launch your ODBC Data Sources Administrator.
- Locate the relevant DSN.
- Click the Configure button.
- Scroll through the configuration screens until you find the "Enable TAF" checkbox.
- Check the TAF checkbox to prompt the driver to attempt multiple failover connections to alternative DBMS nodes.
- 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.
- Maximum Retries - This is the maximum number of times that the driver will retry the connection.
Multi-Tier "Enterprise" Edition on any OS
- Log in to the machine that hosts the Multi-Tier server components installation.
- Use a text editor to open the
oplrqb.inifile that resides in the bin sub-directory of the Multi-Tier installation.
- Locate the
[Environment ORACLE10]section.
- 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.
- Save your changes and exit the file.
- 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:
void (*call-back) (oplevent_t oplEvent,
SQLHANDLE handle,
SQLUSMALLINT eventInfo)
where:
-
oplEventis an integer indicating the type of event which took place.
-
contextis an application-supplied ODBC handle identifying the context the event is taking place in.
-
eventInfois an unsigned integer code providing more information about the event. The values returned depend on the type of event.0signifies '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:
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:
-
IM500denotes successful failover completion. If the ODBC call generated no other errors, the call returnsSQL_SUCCESS_WITH_INFOwithSQLSTATE IM500and is accompanied by the informational message "Failover completed". As usual, the SQLSTATE and diagnostic message can be retrieved usingSQLGetDiagRec().
-
IM501("Failover aborted") indicates failover was unsuccessful. A function returning this SQLSTATE returns with return codeSQL_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
Advanced configuration for all databases
Settings of the Multi-Tier components that apply whichever database you connect to.
Automate Request Broker Startup (Sample Script)
OpenLink Product Support does not provide customized shell scripts to automate Broker startup or any other feature of our software.
However, we do provide a sample shell script as a courtesy to those individuals who may want general guidance before creating their own scripts.
>> Begin file
#!/bin/sh
#
# Run the OpenLink Request Broker
# For entry in /etc/rc2.d/SnnOpenLinkBroker, where nn is 90 or higher.
# Typically, nn is 98 so that it precedes the CDE login process which
# does not return.
BIN_DIR=/usr/openlink/bin
if [ "$1" = stop ]
then
echo "Shutting down OpenLink Request Broker ..."
# This code derived from the OpenLink rqbshut script.
#######################################################################
process=oplrqb
set - `ps -e | grep " $process\$" | grep -v grep`
if [ $# -eq 0 ]
then
echo $0: $process is not running
exit 1
fi
kill $1 2>/dev/null
if [ $# -eq 0 ]
then
echo $0: unable to shutdown $process
exit 1
fi
echo $0: $process shutdown complete
exit 0
echo "Shut down process but not exiting script"
fi
# Else, assume start.
# BIN_DIR=/export/home/openlink/sschadt/bin
exe=$BIN_DIR/oplrqb
if [ -x $exe ]
then
# See OpenLink installation guide for alternatives.
if id | grep "uid=0" >/dev/null 2>&1
then
# Start broker under its owner's identity.
# set - `ls -l $exe` (this line was clearing out $1)
# See if the file exists and use $? to determine outcome
ls -l $exe >/dev/null 2>&1
if [ $? -eq 0 ]
then
id="$1"
echo "The id being used is '$id'"
echo "Starting OpenLink Request Broker with '"$id"' identity."
su "$id" -c "$exe &"
echo "ps -ef | grep opl ..."
ps -ef | grep opl
exit $?
fi
fi
echo "Starting OpenLink Request Broker."
$exe >/dev/null 2>&1 &
exit $?
else
echo "OpenLink Request Broker not found: $exe"
exit 1
fi
<< end of fileConfiguring Firewalls to permit Multi-Tier Connectivity
If you use our Multi-Tier components through with a firewall, several ports must be opened to permit requests from Generic Clients to Request Broker and Database Agents (and their responses).
Some ports are user or admin configurable; some are not.
Unconfigurable Ports
TCP and UDP ports 60001 must be open. These ports are used by the Request Broker and the OpenLink License Manager, and cannot be changed.
Configurable Ports
Configurable ports are specified in the [Protocol TCP] section of your Session Rulebook (default, oplrqb.ini).
You can use any text editor to open your Rulebook, and edit this section:
[Protocol TCP]
PingWatchdog = No
PingInterval = 600
;IPAddress = 127.0.0.1
Listen = 5000
PortLow = 5000
PortHigh = 5025- The Request Broker listens on the TCP port specified in the Rulebook as
Listen. (Release 3.x and earlier listened atPortLow.)
-
ListenandPortLoware generally best set to the same value.
- The Request Broker restricts Database Agents to use only ports in the range between (and including) those specified in the Rulebook as
PortLowandPortHigh. Specific Agent ports are requested from and assigned by the operating system when an Agent is instantiated; they are not preemptively reserved.
- The span between
PortLowandPortHighis generally best set to twice the licensed number of Database Sessions. At minimum, this span should be the licensed number of Database Sessions plus 5 (and thus, not less than 10).
Related Documentation
Firewall Considerations for Multi-Tier "Enterprise" Edition Data Access Drivers
- The Request Broker host must accept (and all intervening firewalls must permit) inbound connections from all client hosts (and from the Request Broker host itself) to (and responses from) --
- TCP port
60001, in all Releases;
- UDP port
60001, in all Releases;
- TCP port
5000, in Release 3.x and earlier;
- TCP port specified by Rulebook setting
[Protocol TCP]:Listenin Release 4.x and later; default is5000; and
- TCP ports between Rulebook settings
[Protocol TCP]:PortLow(default5000) and[Protocol TCP]:PortHigh(default60000) (including the port numbers specified for these settings).
- TCP port
- The Generic Client hosts (and all intervening firewalls) must permit outbound connections to (and responses from) the Broker host on --
- TCP port
5000, in Release 3.x and earlier;
- TCP port specified by Rulebook setting
[Protocol TCP]:Listenin Release 4.x and later; default is5000; and
- TCP ports between Rulebook settings
[Protocol TCP]:PortLow(default5000) and[Protocol TCP]:PortHigh(default60000) (including the port numbers specified for these settings).
- TCP port
- If the Database Agent makes a network connection to the target DBMS (in a "three-tier" or "gateway" deployment), the database server host must accept (and all intervening firewalls must permit) inbound connections on the DBMS listen port(s) (e.g.,
5432/tcpfor PostgreSQL;1433/tcp,1433/udp,1434/tcp, and1434/udpfor SQL Server, etc.).
- If you have a stateful firewall, return packets from the Request Broker and Database Agents to the clients should be taken care of automatically. If not, you will also have to address the ephemeral client-side ports.
- The Multi-Tier Admin Assistant listens at TCP port
8000by default. This is configurable, via theHttpPortsetting in the[Startup]stanza of thewww_sv.inifile, typically found in thew3configsubdirectory of thebindirectory containing the Broker executable,oplrqb.
Related Documentation
Error Message: Unable to contact the OpenLink License Manager
Release 6.x (and Release 5.2 on some platforms) and newer drivers ship with the separate OpenLink License Manager, oplmgr.
General Guidance, for Windows, Linux, and other Unix-like OS (except macOS)
If you receive the above error message, check whether the OpenLink License Manager is running on the licensed host -- i.e., the Request Broker host for the Enterprise Edition (Multi-Tier); the client driver host for the Lite or Express Editions (Single-Tier); or the Virtuoso server host.
- on Windows, use the Task Manager or similar.
- on Unix-like OS, use a command like this (may vary, depending on your active shell) --
Shell ps -ef | grep oplmgr | grep -v grep
If the License Manager is already running, make sure that networking and firewalls are properly configured.
If networking and firewall are configured properly, and the License Manager is running, but the error persists, then kill the oplmgr process (e.g., kill -9 <PID>), and proceed as below.
If the License Manager is not running, do this:
- Ensure the proper license file(s) is/are in place, and named as we shipped them (e.g.,
pro9_lt.lic,oplrqb.lic,ee_inf_lt.lic).
- Remove or rename any expired or otherwise extraneous OpenLink license files.
- Create or modify the
OPL_LICENSE_DIRenvironment variable, and ensure that it includes each and every directory that contains one of your active OpenLink license file(s).
- Start the License Manager --
- On Windows, use the Services or Component Services control panel (often found in the Administrative Tools sub-folder).
- On Unix-like OS, set the OpenLink environment by running the appropriate script for your shell (adjusting the path as appropriate) --
shell command sh, bash, zshand related. /path/to/openlink.shkshand relatedsource /path/to/openlink.shcsh, tcshand relatedsource /path/to/openlink.csh
- Our recent distributions start the License Manager as part of the above scripts; if you see no message about
oplmgrstarting, then also execute this command --
Shell oplmgr +start
- Our recent distributions start the License Manager as part of the above scripts; if you see no message about
- On Windows, use the Services or Component Services control panel (often found in the Administrative Tools sub-folder).
- Confirm that the License Manager has started successfully --
- on Windows, use the Task Manager or similar.
- on Unix-like OS, use a command like this (may vary, depending on your active shell) --
Shell ps -ef | grep oplmgr | grep -v grep
- on Windows, use the Task Manager or similar.
- Test a connection.
Special Guidance for Release 6.x or 7.x on macOS Snow Leopard (10.8.x) and later
Note: This guidance is not relevant for Release 8.x drivers, nor with Release 6.x or 7.x installers with.mpkg dated 2014-12-04 or later.
Changes in the Gatekeeper in Snow Leopard (10.8.x), Mavericks (10.9.x), Yosemite (10.10.x), El Capitan (10.11.x), Sierra (10.12.x), High Sierra (10.13.x), Mojave (10.14.x), and Catalina (10.15.x) required updated License Manager binaries and startup scripts.
Installers produced after 2014-12-04 for Release 6.x and 7.x, and all installers for Release 8.x, include these updates. Updated oplmgr installers are also available for users with drivers installed, or driver installers dated, prior to 2014-12-04.
- If your Release 6.x or 7.x driver installer
.dmgcontains an.mpkgdated before 2014-12-04, please download this second installer package for use on macOS Catalina (10.15.x), Mojave (10.14.x), High Sierra (10.13.x), Sierra (10.12.x), El Capitan (10.11.x), Yosemite (10.10.x), Mavericks (10.9), Snow Leopard (10.8.x), or Lion (10.7.x) -- oplmgr.pkg
- Double-click to run the .pkg.
- This installer should automatically move any previously installed license files from --
Files /Library/Application Support/openlink/bin/*.lic
-- to --
Files /Library/Application Support/openlink/Licenses/*.lic
-- but some users have reported otherwise, so you may need to do this relocation yourself, with/Applications/Utilities/Terminal.app--
Shell cd "/Library/Application Support/openlink/Licenses" sudo mv ../bin/*.lic .
- Confirm that the oplmgr process is running with this Terminal.app command --
Shell ps -ef | grep oplmgr | grep -v grep
If it's running, output should look something like this --
Example 0 111 1 0 Wed09AM ?? 0:00.57 /Library/Application Support/OpenLink/bin/oplmgr -fd /Library/Application Support/OpenLink/Licenses
If it's not running, try a reboot, or manually execute the following Terminal.app command, and then check for the process again --
Shell sudo /Library/Application\ Support/OpenLink/bin/oplmgr -fd /Library/Application\ Support/OpenLink/Licenses &
- Once the oplmgr process is running, try testing the driver again.
Related Documentation
- Firewall Considerations for Multi-Tier "Enterprise" Edition Data Access Drivers
- Configuring Server-side Firewalls for Multi-Tier Connectivity
- OpenLink License Manager Networking Considerations
- Configure Multi-Tier Request Broker for Use on Machines with Multiple Network Cards
- OpenLink License Manager Usage Notes
- Start the License Manager Process
OpenLink License Manager Networking Considerations
If the License Manager discovers another License Manager is using a license with the same serial number, it will stop allocating licenses and report "License already in use".
If the License Manager cannot communicate with the network, it will do the same.
The OpenLink License Manager uses the multicast IP address 224.0.0.24 on ports 60001/udp and 60001/tcp to send and receive communications with other OpenLink components including other License Managers.
It is becoming common for operating systems to have a default firewall enabled that blocks all network traffic, such that specific ports must be explicitly opened and/or applications must be explicitly granted communications permission.
In such cases, port 60001 must be opened on both TCP and UDP, for both inbound and outbound communications, and/or oplmgr must be granted similar permissions.
If you cannot figure out how to open this port in your local environment, please contact OpenLink Software Support for assistance.
Related Documentation
Configure Multi-Tier Request Broker for Use on Machines with Multiple Network Cards
If the Multi-Tier server components are installed on a machine containing multiple network cards, even if only one is configured for network use, you may experience various issues including timeouts and network communications failures. To avoid or resolve these, take the following action:
- Use a text editor to open your Broker Rulebook; by default,
oplrqb.inifile found in the/binsub-directory of your OpenLink server components installation.
- Locate the
[Protocol TCP]section.
- Remove the semicolon (
;) which appears in front of theIPAddressparameter. For example:
INI ;IPAddress = 192.168.0.1 #Before IPAddress = 192.168.0.1 #After
- Set the IPAddress value to the address which is reachable by all client hosts (i.e., if the Broker host has an "internal" and an "external" IP address, set this value to the "external").
For example:
INI IPAddress = 83.323.137.120
- Save your changes and exit the file.
- Restart the Request Broker to activate the changes.
- Client DSNs should now be able to pass either the IP address, or any fully-qualified hostname (e.g.,
broker-host.example.com) which resolves to that address.
Configure Multiple Brokers on a Single Machine
Users often need to run two Multi-Tier Request Brokers on a single machine. Development testing, load balancing, and related issues often necessitate this. If you need to intend to test with one Broker running and one Broker down, the only thing that you need to is provide unique Listen and Administrative Assistant tcp ports during installation. If you intend to run both Brokers at the same time, read this --
1. Login to the machine that hosts the OpenLink Request Broker(s).
2. Use the bash command to open a bash shell. Alternatively, use the sh command to open a bourne shell. # This step is optional.
3. cd into the bin sub-directory of the pre-existing installation.
4. vi the oplrqb.ini file.
5. Locate the [Protocol TCP] section.
6.
Identify the TCP port passed to Listen.
For example:
[Protocol TCP]
PingWatchdog = No ; Send check-alive packets
PingInterval = 600 ; every <PingInterval> seconds
;IPAddress = 127.0.0.1 ; Overrules found interface address
PortLow = 5020
;PortHigh = 60000
Listen = 50205. Exit the file.
6. cd into the ~/openlink/bin/w3config directory.
7. vi www_sv.ini.
8. Find [Startup].
9.
Identify the TCP port passed to HttpPort.
For example:
[Startup]
HttpPort = 8005
HttpRoot = html
Timeout = 60
TclInclude = include
ScriptDirectories = /scripts
CGIDirectories = /cgi-bin
IndexPage = /index.html
10.
Exit the file.
11. If you intend to add a 6.x or newer installation to a machine hosting OpenLink's 1.x, 3.x, 4.x, or 5.x builds, it may be necessary to shutdown the existing Request Broker and restart it after the new, 6.x+ Broker is running. Plan and act accordingly.
12. Create a new install directory to host the new Multi-Tier server components.
13. Download the installation files and shell script into this directory.
14. Execute the .profile of the target database or database native client.
15.
Run the following command to start the installation:
sh install.sh16. Provide *unique* TCP ports for use by the new Request Broker and Administrative Assistant.
17.
Allow the installation to complete.
18. Execute the following command from the root of the new installation:
. ./openlink.sh
19. cd into the bin sub-directory of the installation.
20. Download the relevant license file into this directory.
21.
6.x+ users execute this command:
./oplmgr +start22.
Execute this command:
./oplrqb +loglevel 7 +logfile oplrqb.log
23.
Test a connection to the new Broker.
Remember to use this new Broker's Listen port in your DSNs or URLs.
24. Restart your pre-existing Broker, if applicable.
25.
Test a connection to your pre-existing Broker.
To Uninstall
Can be done for UDA thru 5.2
InstallShield makes it possible
article based on http://support.mobileautomation.com/support/tsarticle.asp?tsid=277
Issue:
Any application can easily be made into an unattended and silent installation if it's setup install program is based on 'InstallShield'. InstallShield is an industry standard installation packaging system for initially installing many programs.
To do this you would use a built in function of <nopInstallshield which allows you to create an answer file (ISS).
This file would be create by walking through a real installation on a test PC and literally remembering all the selections you make as you go through the install.
These settings would then be saved to an answer file (setup.iss) which is created by default in the WINNT or Windows directory.
You can then re-execute the setup.exe installation by simply pointing to the setup.iss answer file as an option. InstallShield will silently walk through the installation using all of your saved options and settings.
It is also possible to perform a silent uninstall using a similar trick.
Use the following command line options to accomplish this task.
Resolution:
Install shield options
setup.exe -rwill create answer file
setup.exe -s -a /s /f1setup.isswill execute the silent install
setup.isswill be created in the Winnt directoryTo Uninstall
Example:
"C:\WINDOWS\ISUNINST.EXE" -y -a -m -f "C:\Program Files\Path To\DeIsL1.isu"You will need to adjust the path of the ISU file for your particular application.
Configure Data Encryption (non-SSL)
"
OpenLink's Multi-Tier Universal Data Access solution permits simplex and duplex encryption, for maximum flexibility according to the user's needs. (Single-Tier does not presently support encrypted communications.)
Simplex is one-way, encrypting all communications sent from the OpenLink Generic Client to the OpenLink Server (Request Broker or Database Agent), or from the Server to the Client. Duplex simply combines these two, resulting in fully secure communications between OpenLink Client and Server.
Data encryption will have some impact on performance because additional work is being performed before the data is presented to the calling application. There is always some trade-off between security and speed. However, we have optimized our encryption algorithms to minimize this overhead.
Client configuration
Client data encryption is configured through the OpenLink Client Configuration Utility, on Windows and Mac OS, or through the HTTP-based OpenLink ODBC Administrator, on Unix.
The DataEncryption value in the odbc.ini file's [Communications] stanza may also be manually edited on Mac OS or Unix; on Windows, this setting is found in the Registry at HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\OPENLINK.INI\Communications\DataEncryption.
This section key can be set to Yes or 1 to enable data encryption, and to No or 0 to disable it.
When enabled, this setting will cause all communications from the Client to the Request Broker or Database Agent to be encrypted. This does not cause data returned from the Request Broker or Database Agent to be encrypted.
Server configuration
Request Broker and Database Agent data encryption is configured through the [Communications] stanza of the Rulebook, oplrqb.ini.
The HTTP-based OpenLink Admin Assistant may be used for this configuration (Server Components Administration >> Request Broker Administration >> Configure Request Broker's Parameters by Form >> Communications Parameters), or the Rulebook (oplrqb.ini) may be manually edited.
The DataEncryption key should be set to Yes or 1 to enable data encryption.
To disable data encryption, use No or 0.
When enabled, this setting will cause all communications from the Request Broker or Database Agent to the Client to be encrypted. This does not cause data returned from the Client to be encrypted.
Configure Intersolv, Merant or DataDirect Driver Managers to Use OpenLink Drivers
Configure Intersolv, Merant or DataDirect Driver Managers to Use OpenLink Drivers
You may configure the Intersolv, Merant or DataDirect Driver Manager to use OpenLink drivers. To proceed, take the following action:
1.
Locate and open the Driver Manager's odbc.ini file.
2.
Locate the [ODBC Data Sources] portion of the file.
3.
Add your DSN to the list.
For example:
[ODBC Data Sources]
OpenLink = OpenLink Generic ODBC Driver
4.
Create a standard OpenLink DSN in this odbc.ini file.
For example:
[OpenLink]
Driver = /home/openlink/lib/oplodbc.so.1
Host = saturnus
ServerType = Informix 7.3
FetchBufferSize = 99
UserName = informix
Password = ol_informix
Database = stores7
ReadOnly = no
5.
Save your changes and exit the odbc.ini file.
6.
Search for the Driver Manager's odbcinst.ini file.
7.
If does not exist, create one.
8.
Add the following entry to the odbcinst.ini file:
[OpenLink Generic ODBC Driver]
APILevel=1
ConnectFunctions=YYN
Driver=/usr/openlink/lib/oplodbc.sl.1
DriverODBCVer=02.50
FileUsage=0
SQLLevel=1
9.
Save your changes and exit the file.
10.
Test.
Customize Your Multi-Tier Security
Customize Your Multi-Tier Security
The following instructions will enable you to provide greater security for your database:
- List all Domain aliases (aka "ServerTypes") used in your client-side DSNs.
For example:
Example Oracle 8.0.x
- Use a text editor to open the
oplrqb.inifile which resides in the/binsub-directory of your OpenLink server components installation.
- Locate
[Domain Aliases]and determine how those listed above are resolved. For example:
INI [Domain Aliases] Oracle 8.0.x = ora80
- Locate the resolved names of the Domain Aliases under
[Mapping Rules]. For instance:
INI [Mapping Rules] ora80:*:*:*:*:*:* = accept generic_ora80.
- Determine whether any of these fields need added security.
Here is a breakdown:
Example domain_name:database:user:client_os:machine_id:app_name:operation_mode
(Note: "operation_mode" refers to read-only (ro) or read-and-write (rw) access.)
- Build rules to govern whether connection requests will be accepted or rejected by the Broker.
For instance:
Example ora80:*:scott:*:*:*:* = reject User "scott" is not allowed to connect to this service.
This rule rejects all connection attempts made by user scott, and tells them so. You can substitute any plain-text rejection message here, and it will be delivered to users who are blocked by this rule.
- Order each rule properly.
For example:
Example ora80:*:*:*:*:*:* = accept generic_ora80 ora80:*:*:*:*:msaccess:* = reject Microsoft Access is not allowed to connect to this service.
The first rule permits access to generic_ora80 in all scenarios. The second rule is never visited, since the preceding rule permits all ora80 requests.
Example ora80:*:*:*:*:msaccess:* = reject Microsoft Access is not allowed to connect to this service. ora80:*:*:*:*:*:* = accept generic_ora80
The first rule screens for and rejects connections requested by Microsoft Access. Connections not originating with Microsoft Access are passed on to the second rule, which permits all requests.
- Save your changes and exit the file.
- Restart your Broker.
Hide Login Boxes on Windows Clients
Hide Login Boxes on Windows Clients
You may prevent Data Source login boxes from appearing, on Windows clients. The following instructions assist you with this task:
1. Open your client's ODBC Data Sources utility. (Control Panel)
2. Highlight your DSN. It will appear on the utility's User, System, or File tab.
3. Click on the "Configure" button.
4. Check the "No Login Dialog Box, if you are using OpenLink's Multi-Tier drivers.
5. Search your DSN's tabs for a "Hide Login Dialog" box, if you are using OpenLink's Single-Tier drivers. Then, check the "Hide Login Dialog" box, one you find it.
6. Click OK to save your changes.
7.
Test.
Relinking Multi-Tier Database Agents for any DBMS
It is sometimes necessary to link or re-link your Multi-Tier Database Agents.
Typical reasons include:
- The existing Database Agent executable has some incompatibility with database or operating system libraries on your Broker host.
- No Database Agent executable was installed on your Broker host.
The files described below should all be part of all current agent installations. If the files discussed below are not found in your installation, you may have an older version of the software. In that case, please contact us for additional assistance.
We provide a relink script for each Database Agent.
These scripts are named using the form -- <ld><XXXX><NN>[mv].
-
ld- indicates a link script
-
XXXX- first 3 or 4 letters of database name
-
NN- database version number, to the same specificity as the corresponding Database Agents
-
mv- if the agent is multi-threaded.
Examples:
-
ldora81mvis for the multi-threaded agent for Oracle 8i.
-
ldoig2is for the single-threaded agent for Ingres II.
We have attempted to provide a set of generic link scripts for every version of Progress we support, to enable you to relink most easily. In some cases, you may need to create a custom relink script for Progress Agents. Note: Relinking Progress Agents is typically necessary only if you are running a version of Progress with a different patch level the one originally used for linking the agents shipped and you are connecting a SQL-89 Agent in shared memory mode.
Pre-requisites for relinking Database Agents
Requirements for all Database Agents
- Make a backup copy of your existing Agent(s).
- Insure that you have a
Ccompiler and library linker installed on your database server.
- Set key OpenLink linking-script environment variables, which themselves reference key database environment variables required for making native connections to your database engine.
You may prefer to adjust these values in the "
dbpaths" file situated in the same directory as your database agent link script.
- DB2
INI DB2DIR=$DB2INST
- Informix
INI INFORMIX5DIR=$INFORMIXDIR INFORMIX6DIR=$INFORMIXDIR INFORMIX7DIR=$INFORMIXDIR
- Ingres
INI INGRES6DIR=$II_SYSTEM/ingres INGRES7DIR=$II_SYSTEM/ingres
- Oracle
INI ORACLE6DIR=$ORACLE_HOME ORACLE7DIR=$ORACLE_HOME ORACLE8DIR=$ORACLE_HOME
- Progress / OpenEdge
Shell export PROGRES8DIR=$DLC export PROGRES9DIR=$DLC export PROGRES10DIR=$DLC
- Solid
INI SOLIDDIR=$SOLID
- Sybase
INI SYBASE10DIR=$SYBASE SYBASE11DIR=$SYBASE SYBASE4DIR=$SYBASE
- Unify
INI UNIFYDIR=$UNIFY../lib
- Velocis
INI VELOCISDIR=$VELOCIS
- Virtuoso
INI VIRTUOSODIR=$VIRTUOSO
- DB2
- The "
.../openlink/lib" (or similar) subdirectory that you are working with should be included in your systemPATH. If it is not already, add this directory to the systemPATHnow.
Additional Informix-specific requirements
- Informix users must have an
$INFORMIXDIR/lib/esql/directory for successful relinking. This may be obtained and installed as part of the freely downloadable Informix Client SDK, available from IBM, if not already present as part of your installation.
Additional Progress-specific requirements
- All Progress users must have a
$DLC/probuild/4gl/directory, which requires a development license from Progress.
- All Progress users must set and export
DLCandPROLOADenvironment variables.DLCpoints to the root of the Progress installation.PROLOADpoints to the$DLC/probuild/directory.
- Progress 6 users must have an HLI/C license from Progress. For Progress 7, 8, and 9, this is not required
Relinking Database Agents for all DBMS
- Ensure that all pre-requisites listed above have been addressed.
- Navigate to the "
lib" sub-directory of your OpenLink server components installation directory, e.g., "/usr/openlink/lib".
- If relinking a SQL-89 Agent for Progress (proNNN_sv) --
- Confirm that the Progress environment variable
DLCis set correctly.
- Confirm that the Progress environment variable
PROLOADis set correctly.
- Run the appropriate
mkdlcXscript, whereXis the major version number of your Progress installation (i.e., 6, 7, 8, or 9). This will produce a file calleddlcX.o.
- If you receive an error stating that any Progress library cannot be found, edit the
mkdlcXscript and remove the reference(s) to that file; then re-run themkdlcXscript. Repeat this step as needed.
- Confirm that the Progress environment variable
- Run the appropriate link script (
ldXXXNN) which will attempt to build a new database agent.
- At the end of the relink process, the new database agent executable will be automatically placed in the "
bin" subdirectory directory of your OpenLink server components installation. The new database agent binary will be named according to the typical OpenLink conventions, i.e.,XXXNN_svorXXXNN_mv.
- Navigate to the "
lib" sub-directory of your OpenLink server components installation; typically --
Shell cd ../bin
- Locate your newly linked agent.
If it has a different name than the original agent, you can rename both so that the new one takes the place of the old, or you can edit your Broker Rulebook (
oplrqb.ini) and change all occurrences of the old database agent name to the new agent name.
- Restart your Broker.
- Test.
Related
Creating Custom Relink Scripts for Drivers and Agents for Progress/ OpenEdge
Custom relink scripts may be needed when our standard scripts are incompatible with your database installation and/or environment.
The Progress probuild utility enables you to create such custom scripts.
- Locate the
buildenvscript, typically found in the$DLC/probuild/eucappdirectory.
- Ensure that the environment variable settings in the
buildenvscript are accurate for your system.
- Set and export
Example PROLOAD=$DLC/probuild export PROLOAD
- Type the following command at your command line:
Example $PROLOAD/eucapp/probuild
- At the Install Link Script Into prompt, enter the full path to your
~/openlink/bindirectory.
- Click Continue.
- Select ESQL/C Large Client Full from the product list.
- Click Continue.
- Give your relink script an appropriate name.
For example:
Example ldpro7 ldpro8 ldpro9
- Give the executable to be produced an OpenLink-style Database Agent name.
For example:
Example pro73e_sv pro83b_sv pro91b_sv
- Click Continue.
- Do not specify any special configurable elements.
- Click Continue.
- Locate the database agent object code in the
/libsub-directory of your OpenLink installation. Object code files are named similarly topro7_sv.o,pro8_sv.o, andpro9_sv.o.
- Enter the full path to the relevant Database Agent object code (
proxxx_sv.o) under "Object Files.'
- Click Continue.
- Exit
probuild.
- Repeat the relink process with your new relink script.
Changing or Resetting Access Restrictions for the Multi-Tier Request Broker's Admin Assistant
Changing User Access
- Load the Admin Assistant in a browser.
The default URL is http://broker-hostname-or-ip-address:8000/.
- Drill down to Server Components Administration -> Admin Assistant Settings -> Configure the List of Users Allowed to use the Admin Assistant.
When prompted to log in, use the defaults or whatever you've set previously.
- Click Edit, Remove, or Add as appropriate, until the list reflects your intention.
- Optionally, drill down to Server Components Administration -> Admin Assistant Settings -> Configure the Admin Assistant's Remote Access Filters.
Here you can restrict the IP addresses which may use Web browsers to access the Admin Assistant.
- When you've finished, stop and restart the Request Broker, which will automatically restart the Admin Assistant.
- Test your new settings.
Resetting to Defaults
The default username and password of the Multi-Tier Admin Assistant are both admin.
If you cannot log in with these values, you may have changed them during installation.
You can reset these through the following steps:
- Access the machine which hosts the Multi-Tier server components.
- Open a CMD/DOS or Unix terminal session.
- Navigate to the
/bin/w3configsub-directory of the server-side installation.
- Run
setuporsetup.exe. This program will reset both username and password to the defualt -- i.e., "admin".
Set Isolation Levels
Set Isolation Levels
You may use OpenLink's +initsql parameter to change your database isolation level. The following instructions will assist you with this task:
1. Insure that your database supports the operation which you want to implement. Verify the syntax which that database will accept.
2.
Create a file in the /bin sub-directory of your OpenLink server components installation.
This file should contain only the isolation level syntax.
For example:
-Dsrv TXN_ISOLATION, SERIALIZABLE
3.
Open the oplrqb.ini file which resides within the same /bin sub-directory.
4.
Locate the [generic_XXXXX] section which corresponds to the database agent which you use.
For example:
[generic_inf7]
Program = inf7_mv.exe
Environment = INFORMIX7
OpsysLogin = Yes
ReUse = always
;Directory = c:\temp
;ConnectOptions =
;ReadOnly =
;CommandLine =
5.
Locate the "CommandLine" parameter, and pass the file which you have created.
For example:
CommandLine = +initsql yourisolationfile
6.
Remove any semicolon (;) which may appear in front of CommandLine.
7. Save your changes and exit the oplrqb.ini file.
8.
Restart the OpenLink Request Broker by typing the following commands from the same /bin sub-directory:
./oplshut
./oplrqb +loglevel 7 +logfile oplrqb.log
9.
Test.
Details of Multi-Tier Rulebook ConnectOptions , and Single-Tier and Multi-Tier DSN Options
For connections to DB2
| Option Setting | Details | Example |
|---|---|---|
<Native DB2 DSN> (no flag) |
Pass a native DB2 DSN, if the DB2 DBMS runs on a different machine than the OpenLink Request Broker and Database Agent. | My_DB2_DSN
|
For connections to Informix
| Option Setting | Details | Example |
|---|---|---|
<Informix Instance Name> (no flag) |
Pass an Informix Instance Name, if connecting via TCP/IP stack (i.e., not shared memory). | inf10inst1
|
For connections to Ingres
| Option Setting | Details | Example |
|---|---|---|
<Ingres vnode> (no flag) |
Pass an Ingres vnode, if the Ingres DBMS runs on a different machine than the OpenLink Request Broker and Database Agent. | Ing_vnode
|
For connections to Microsoft SQL Server
| Option Setting | Details | Example |
|---|---|---|
-H <hostname or IP address> |
Required Fully-qualified domain name (i.e., DNS-resolvable hostname) or IP address of the SQL Server host machine. | -H sql-host.example.com |
-V <version> |
Required TDSVer value.
Optimal settings are 10.0 for SQL Server 2008 and later, 9.0 for SQL Server 2005 , 8.0 for SQL Server 2000, 7.0 for SQL Server 7.x.
|
-V 9.0 |
-P <port number> |
TCP Port at which the target SQL Server instance is listening.
Not required if -I or -S is properly set.
Required otherwise.
|
-P 1433 |
-I <instance-name> |
SQL Server instance name on the specified host (-H).
Only the actual "InstanceName".
This option should be used in preference to the -S option below for connecting to a named instance.
|
-I mssql2k5 |
-S <FQDN of database host>\\<instance-name> |
Not recommended.
-H and -I are preferred. Specifies a target SQL Server instance by combining the host and instance names as "<FQDN>\\<instance>", e.g., "sql-host.example.com\\demo-instance".
Note the double backslash ("\\") required between the host and instance names.
|
-S sql-host.example.com\\mssql2k5 |
-F <fail-over server name> |
Specifies the fail-over server name for Database Mirroring. | -F failover-host.example.com |
-O <value> |
Determines whether stored procedures are created on the server for every call to SQLPrepare().
Acceptable values are "2" (Full), "1" (Partial, the default), and "0" (None).
Effects of this setting.
|
-O 1 |
-L <language> |
The name of a Microsoft SQL Server-supported national language. The default language is English. | -L English |
-C <character set> |
The name of the character set the OpenLink driver should deliver to the client application, to be translated from the Server's character set. By default, this is taken from the application's environment. Only valid for non-Unicode drivers. Unicode drivers always deliver UCS-2 on Windows and UCS-4 on Mac OS X and Unix-like OS. | -C ISO-8859-1 |
-A |
Turn off ANSI NULL handling.
Effects of this setting.
|
-A |
-E |
Require SSL Strong Data Encryption for communications between Database Agent or Lite Driver and SQL Server. If SQL Server is not configured to support SSL, connections will fail. This is not necessary when the SQL Server is configured to require SSL communications; the Agent/Driver automatically support that requirement. | -E |
-R |
Require SSL Server Certificate Verification for SSL communications.
Has no effect if SSL is not active.
Not necessary in most cases.
Will cause failure in server-forced SSL connections if -D (below) is not also set correctly. |
-R |
-D <path to file> |
Full path including filename of Certificate Authority File to be used for SSL Certificate Verification. | /usr/local/certs/auth.caf |
-Z |
Turn on Snapshot Serializable Isolation. | -Z |
-M |
Turn on Multiple Active Result Sets (MARS), enabling concurrent processing of multiple statements, queries, and/or result sets, on a single database connection. | -M |
-N <size> |
Network Packet Size determines the number of bytes per network packet transferred between the Microsoft SQL Server and the Database Agent or Lite Driver.
This attribute can have significant impact on performance.
The default, and often optimal, setting is 8000.
The maximum supported by Microsoft SQL Server is 32767.
|
-N 0 |
For connections to MySQL
| Option Setting | Details | Example |
|---|---|---|
-H <hostname or IP address> |
Required Fully-qualified domain name (i.e., DNS-resolvable hostname) or IP address of the MySQL host machine. | -H mysql-host.example.com |
For connections to JDBC Data Sources
| Option Setting | Details | Example |
|---|---|---|
<JDBC Connection URL> (no flag) |
Required. Pass a JDBC connect URL as appropriate for the target JDBC Driver. | jdbc:openlink://test.example.com:5000/UID=sa/PWD=admin/READONLY=N/FBS=10/SVT=SQLSERVER/DATABASE=pubs/OPTIONS=-H sqlhost.example.com -V 8.0 -P 1433/ |
| NOTE. The JDBC Driver classname must be passed as the Database DSN attribute, and the associated jar file must be in the active CLASSPATH. |
For connections to ODBC Data Sources
| Option Setting | Details | Example |
|---|---|---|
<local ODBC DSN> (no flag) |
Required. Pass an ODBC DSN as defined on the Broker host. | my_odbc_dsn |
For connections to Oracle
| Option Setting | Details | Example |
|---|---|---|
<Oracle SQL*Net or Net Service Name> (no flag) |
Pass an Oracle Service Name, as defined in tnsnames.ora.
|
oracle.example.com |
<Oracle Connection String> (no flag) |
Pass an Oracle connection string. | "scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle-host.example.com)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=oracle.example.com)))" |
For connections to PostgreSQL
| Option Setting | Details | Example |
|---|---|---|
-H <hostname or IP address> |
Required Fully-qualified domain name (i.e., DNS-resolvable hostname) or IP address of the PostgreSQL host machine. | -H postgresql-host.example.com |
For connections to Progress / OpenEdge
The following options are not required for Shared Memory-mode connections -- which are only possible with SQL-89 drivers, and only when those drivers have been linked to exactly the same Progress library versions as are installed on the current host.
These options are all required for Sockets-mode connections. Any connection may be made in sockets mode if Progress instance has been started with this mode enabled.
Connection must be made in sockets mode when using --
- a Single-Tier Driver (whether SQL-89 or SQL-92),
- a SQL-92 Driver (whether Single-Tier or Multi-Tier),
- a Multi-Tier Database Agent (whether SQL-89 or SQL-92) that is not located on the same host as the Progress instance, and
- a SQL-89 Driver (whether Single-Tier or Multi-Tier) that has not been linked to the exact same Progress library versions as are installed on the current driver host.
| Option Setting | Details | Example |
|---|---|---|
-S <socket service name or port number> |
Socket service port number, or associated service name as set in /etc/services or equivalent.
|
-S 1234 |
-H <hostname or IP address> |
Fully-qualified domain name (i.e., DNS-resolvable hostname) or IP address of the Progress host machine. | -H progress-host.example.com |
-N tcp |
Always use this value. | -N tcp |
For connections to Sybase
| Option Setting | Details | Example |
|---|---|---|
-H <hostname or IP address> |
Required Fully-qualified domain name (i.e., DNS-resolvable hostname) or IP address of the Sybase host machine. | -H sybase-host.example.com |
-V <version> |
Required TDSVer value.
Sets the Sybase network protocol version the driver will use to communicate with the target instance.
Acceptable values are 4.6 for Sybase SQL Server 4.x, and 5.0 for all other Sybase versions.
|
-V 5.0 |
-P <port number> |
Required Sybase listen port | -P 4100 |
-S <instance names> |
Sybase instance name. Generally not necessary when host and port are correctly specified, but sometimes required even then. | -S MySybaseInstance |
-N <size> |
Network Packet Size determines the number of bytes per network packet transferred from the Sybase server to the Database Agent or Lite Driver.
This attribute can have significant impact on performance.
When set to 0 (default), the driver uses the default packet size as specified in the Sybase server configuration.
When set to -1, the driver computes the maximum allowable packet size on the first connect to the data source and saves the value in the system information.
When set to an integer from 1 to 10, this indicates a multiple of 512 bytes (for example, Packet Size of 6 means to set the packet size to 6 * 512 equal 3072 bytes).
For this setting to have any impact, the server must be configured for a maximum network packet size greater than or equal to the value specified here.
|
-N 0 |
-C <character set> |
The name of the character set the OpenLink driver should deliver to the client application, to be translated from the Server's character set. By default, this is taken from the application's environment. Only valid for non-Unicode drivers. Unicode drivers always deliver UCS-2 on Windows and UCS-4 on Mac OS X and Unix-like OS. | -C ISO-8859-1 |
-O <value> |
Determines whether stored procedures are created on the server for every call to SQLPrepare().
Acceptable values are "2" (Full), "1" (Partial, the default), and "0" (None).
Effects of this setting.
|
-O 1 |
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:
[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.
- Double-click the
Uninstall.commandscript (/Applications/OpenLink/Universal Data Access Drivers (* Tier Edition)). If the script is not present, skip ahead to #3. - 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`. - 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.*
- 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 Upgrades1.
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. |