%META:TOPICPARENT{name="ErrorMessagesU"}%
= Error Message: {{{Unable to Allocate Server Handle}}} =
"Server handle" errors suggest environment or compatibility problems. If you receive "server handle" errors, take the action indicated for your target database and driver type.
%TOC%
== Oracle ==
=== Oracle with Single-Tier "Lite" Edition Drivers ===
# Log in to the machine that contains the problem driver.
# Ensure that this machine contains a full Oracle database install, Net 8/9/10/11, or an Instant Client.
# Ensure the oracle
user owns the driver installation.
# Ensure the "bitness" of the driver matches the "bitness" of the Oracle instance, i.e., 32-bit or 64-bit.
# Ensure ORACLE_HOME
passes the path to local Oracle installation.
# Ensure ORACLE_SID
names the target ORACLE_SID
wherever it resides.
# Identify the directory that contains the Oracle libraries. Instant Client installations generally consist of one directory that serves as both $ORACLE_HOME
and the library directory. Full installations and Oracle client installations tend to have lib
, lib32
, and/or lib64
sub-directories that contain various libraries. You want to identify the library directories that match the bit format of your OpenLink driver.
# Confirm that the library path variable appropriate to your OS includes the directory that contains the relevant Oracle libraries. The library variables are:
| **AIX** | LIBPATH
|
| **HP-UX** | 32-bit libraries: SHLIB_PATH
%BR% 64-bit libraries: LD_LIBRARY_PATH
|
| **All Other Unix-like OS** | LD_LIBRARY_PATH
|
| **Windows** | PATH
|
# Test your connection.
=== Oracle with Multi-Tier Drivers ===
# Log in to the machine that contains your OpenLink server components.
# Ensure that this machine contains a full Oracle database install, Net 8/9/10/11, or an InstantClient.
# Ensure the oracle
user owns the installation.
# Ensure the "bitness" of the driver matches the "bitness" of the Oracle instance, i.e., 32-bit or 64-bit.
# Ensure ORACLE_HOME
passes the path to local Oracle installation.
# Ensure ORACLE_SID
names the target ORACLE_SID
wherever it resides.
# Identify the directory that contains the Oracle libraries. Instant Client installations generally consist of one directory that serves as both $ORACLE_HOME
and the library directory. Full installations and Oracle client installations tend to have lib
, lib32
, and/or lib64
sub-directories that contain various libraries. You want to identify the library directories that match the bit format of your OpenLink installation.
# Confirm that the library path variable appropriate to your OS includes the directory that contains the relevant Oracle libraries. The library variables are:
| **AIX** | LIBPATH
|
| **HP-UX** | 32-bit libraries: SHLIB_PATH
%BR% 64-bit libraries: LD_LIBRARY_PATH
|
| **All Other Unix-like OS** | LD_LIBRARY_PATH
|
| **Windows** | PATH
|
# cd
into the bin
sub-directory of your OpenLink installation.
# Use a text editor to open the oplrqb.ini
file.
# Locate the [Environment ORACLE*]
section that corresponds to your OpenLink database agent. For example:
{{{
[Environment ORACLE100]
ORACLE_HOME = /dbs5/oracle9i/64bit/v9.2.0.1.0
ORACLE_SID = ora92
LD_LIBRARY_PATH = /dbs5/oracle9i/64bit/v9.2.0.1.0/lib
}}}
# Ensure that the ORACLE_HOME
, ORACLE_SID
, and LIBPATH
/SHLIB_PATH
/LD_LIBRARY_PATH
variables are properly set here as well.
# Exit the file.
# Execute the following command: oplshut +reinit
# Run ls
and identify your database agent binary. A few of the possibilities are:
#* ora100_mv
#* ora100_sv
#* ora90_mv
#* ora90_sv
#* ora81_mv
#* ora81_sv
# Confirm that your database agent produces a version string by running passing -?
to your agent on the command line. For example:
{{{
bash-2.03$ ./ora90_mv -?
Oracle 9.x Database Agent (multi threaded)
Version 1.29 as of Mon Nov 13 2006 (Release 6.0 cvsid 00084).
Compiled for Solaris 5.8 (sparc-sun-solaris2.8-32)
Copyright (C) OpenLink Software.
}}}
# Test your connection.
== Progress ==
"Server handle" errors suggest environment or compatibility problems. If you receive "server handle" errors, take the following action:
=== Progress with Single-Tier "Lite" Edition Drivers ===
# Ensure that your Progress database is running in sockets mode.
# Ensure that you are passing the correct sockets parameters (-S
service name or port, -H
hostname or IP address, -N
network, -db
/path/to/database) in the Database Options field of your DSN. For example:
{{{
-S pro82a -N tcp -H saturnus.example.com
-S pro82a -N tcp -H saturnus.example.com -db C:\wrk\my_prog.db
}}}
# Ensure the value passed to -S is [[TroubleshootingUDAServicesFiles|defined with the same name and number]] in the {{{services}}} file on the clients on the Progress host.
# Leave the Server Options field blank.
# If you have a Windows client, search it for progress.ini
. Place a copy of progress.ini
in your client's {{{%WINDOWS%}}} directory. (Normally this directory is either located at {{{C:\Windows\}}} (Windows 95/98/ME) or {{{C:\WINNT\}}} (Windows NT/2000/XP/2003), but it may be located elsewhere.)
# Add the full path to your local Progress {{{\bin}}} directory to your System {{{PATH}}} variable.
# If using IIS:
## Create a new folder, e.g., {{{C:\temp\}}}, and ensure that the "{{{Everyone}}}" group has "Full Control" over this folder.
## Add {{{-T c:\temp}}} (modified as needed to reflect the folder you just created) to Session Options, following the default {{{-d mdy}}} entry, in the ODBC Data Source --
{{{
-d mdy -T c:\temp
}}}
# Test your connection.
=== Progress with Multi-Tier Drivers ===
# Determine if your Progress database is running in sockets or shared memory mode.
# If your database is running in shared memory mode, leave the Database Server or DB Connect Options field of your Data Source blank.
#* If your database is running in sockets mode, pass the sockets parameters ({{{-S}}}, {{{-H}}}, {{{-N}}}, {{{-db}}}, respectively for **S**ervice, **H**ost, **N**etwork, and **d**ata**b**ase). For example:
{{{
-S pro82a -N tcp -H saturnus.example.com
-S pro82a -N tcp -H saturnus.example.com -db C:\wrk\my_prog.db
}}}
# Use a text editor to open the Broker Rulebook (typically found at {{{~/openlink/bin/oplrqb.ini}}}, alongside the Broker executable, {{{oplrqb}}}).
# Locate the Environment corresponding to the relevant Agent Template, typically {{{[generic_proxxx]}}}. For example:
{{{
[Environment PROGRESS82A]
;TABLEVIEW =
;TABLEVIEW_QUALIFIER = Y
;DEADLOCK_TIMEOUT = 60 ; Seconds to wait for lock to release
;INSERT_LOGICAL = Y
;UPDATE_LOGICAL = Y
;MIN_FIELD_LEN =
;MAX_FIELD_LEN =
CURSOR_SENSITIVITY = LOW
DLC = D:\DBS\Progress\Pro82a
PATH = D:\DBS\Progress\Pro82a\BIN;D:\WINNT\System32
}}}
# Confirm that the environment variables ({{{DLC}}}, {{{PATH}}}) are correct for your environment.
# Save any changes and exit the file.
# Restart your Request Broker.
# Test your connection.
== Evidence ==
* Data Source Attributes
* Exact DBMS Version (e.g., Progress 8.1A04, Oracle 8.1.7.3)
* Single-Tier Driver Version, Date, and File Details