Specify Oracle Client Version in Database Connection

3257
11
08-03-2011 02:10 PM
JoshuaBixby
MVP Esteemed Contributor
Thus far, after checking a couple of different Help file locations, I am unable to figure out how to specify the Oracle client version in a Database Connection when a machine has multiple versions of Oracle clients installed.  Prior to 10.1, the Oracle client version was easily specified in the connection parameters.
0 Kudos
11 Replies
TomBrown
New Contributor
I guess it is likely ArcCatalog tried both Oracle clients (10g and 11g)


Esri doesn't attempt to use any Oracle client... ArcGIS is compiled with Oracle's libraries. When we make a call to Oracle's Call Interface (OCI) it loads the Oracle client library. The library it loads is the first client it finds in the path.

Esri has no control over what Oracle client is loaded.

Some of the confusion in this exchange is in regards to the "direct connect" libraries... these are Esri libraries. In previous releases you had to specify in the direct connect syntax the Esir client library to use with Oracle - either Oracle 10g or 11g (and 9i when it was supported). Based on what was specified in the connection string, ArcGIS would load the Esri library which was compiled using the specific Oracle release. It's this library which then attempts to establish the connection to the database by calling the OCI function to create a connection (which in turn loads it's dependencies - the installed Oracle client).

What we've accomplished with ArcGIS 10.1 is to simplify the connection experience by now requiring the user to only specify which DBMS platform they are connecting to... for example when the user selects Oracle we only have 1 Esri library used to make the connection (which is based on Oracle 11g libraries) and again - its the Oracle library which pulls in its own client libraries.

Hopefully this clearly explain the architecture of what happens during a connection and the clear distinction of Esri's libraries and Oracle's libraries.

If you have dependency's on your machines to have both an Oracle 9i or 11g client then you need to speak with Oracle support on how to configure this properly for multi applications.

Good luck and thank you for posting.
0 Kudos
JoshuaBixby
MVP Esteemed Contributor
Tom, thanks for the more in-depth explanation of what occurs during a connection and what changed in 10.1.  I was generally aware of the differences between Oracle client libraries and Esri direct connect libraries, but I wasn't sure of how they interacted, especially in 10.1.  My questioning and frustration were in earnest; I was trying to understand what changed in 10.1 and why I was seeing certain behaviors.

Your statement, "we only have 1 Esri library used to make the connection (which is based on Oracle 11g libraries)," is the most informative for me, and it will be good to communicate the Oracle 11g part of that statement to our organizations IT architects.
0 Kudos