-
Difference between Oracle OCI and thin Driver?
As far as I know there are two different options to acces the Oracle database:
With the thin or the OCI driver.
What is the difference ?
Peter
-
Re: Difference between Oracle OCI and thin Driver?
Peter Swampton wrote:
> As far as I know there are two different options to acces the Oracle database:
> With the thin or the OCI driver.
> What is the difference ?
>
> Peter
The thin driver is all Java. It can run anywhere without needing any other oracle
stuff installed. The OCI driver needs all the Oracle client installed. It uses
Oracle's native client libraries to communicate with the DBMS. The thin driver
just opens a raw socket to the DBMS and knows/uses the client-DBMS protocol itself.
Originally the OCI driver was faster, but in recent years this has been fixed,
especially for the 10g version of the thin driver. OCI has evolved too, but bugs
in native OCI code can still kill an entire JVM, whereas the thin driver is
completely safe in that regard.
To tell an OCI driver where to connect, you just have to tell it the entry
name in the tnsnames.ora file that is in it's ORACLE_HOME environment. With the
thin driver, you give it the DBMS machine name, port number (1521 is default),
and the DBMS's SID.
I hope this helps a bit,
Joe Weinstein at BEA
-
Re: Difference between Oracle OCI and thin Driver?
Peter Swampton wrote:
> As far as I know there are two different options to acces the Oracle database:
> With the thin or the OCI driver.
> What is the difference ?
>
> Peter
The thin driver is all Java. It can run anywhere without needing any other oracle
stuff installed. The OCI driver needs all the Oracle client installed. It uses
Oracle's native client libraries to communicate with the DBMS. The thin driver
just opens a raw socket to the DBMS and knows/uses the client-DBMS protocol itself.
Originally the OCI driver was faster, but in recent years this has been fixed,
especially for the 10g version of the thin driver. OCI has evolved too, but bugs
in native OCI code can still kill an entire JVM, whereas the thin driver is
completely safe in that regard.
To tell an OCI driver where to connect, you just have to tell it the entry
name in the tnsnames.ora file that is in it's ORACLE_HOME environment. With the
thin driver, you give it the DBMS machine name, port number (1521 is default),
and the DBMS's SID.
I hope this helps a bit,
Joe Weinstein at BEA
-
Re: Difference between Oracle OCI and thin Driver?
Peter Swampton wrote:
> As far as I know there are two different options to acces the Oracle database:
> With the thin or the OCI driver.
> What is the difference ?
>
> Peter
The thin driver is all Java. It can run anywhere without needing any other oracle
stuff installed. The OCI driver needs all the Oracle client installed. It uses
Oracle's native client libraries to communicate with the DBMS. The thin driver
just opens a raw socket to the DBMS and knows/uses the client-DBMS protocol itself.
Originally the OCI driver was faster, but in recent years this has been fixed,
especially for the 10g version of the thin driver. OCI has evolved too, but bugs
in native OCI code can still kill an entire JVM, whereas the thin driver is
completely safe in that regard.
To tell an OCI driver where to connect, you just have to tell it the entry
name in the tnsnames.ora file that is in it's ORACLE_HOME environment. With the
thin driver, you give it the DBMS machine name, port number (1521 is default),
and the DBMS's SID.
I hope this helps a bit,
Joe Weinstein at BEA
-
Re: Difference between Oracle OCI and thin Driver?
Peter Swampton wrote:
> As far as I know there are two different options to acces the Oracle database:
> With the thin or the OCI driver.
> What is the difference ?
>
> Peter
The thin driver is all Java. It can run anywhere without needing any other oracle
stuff installed. The OCI driver needs all the Oracle client installed. It uses
Oracle's native client libraries to communicate with the DBMS. The thin driver
just opens a raw socket to the DBMS and knows/uses the client-DBMS protocol itself.
Originally the OCI driver was faster, but in recent years this has been fixed,
especially for the 10g version of the thin driver. OCI has evolved too, but bugs
in native OCI code can still kill an entire JVM, whereas the thin driver is
completely safe in that regard.
To tell an OCI driver where to connect, you just have to tell it the entry
name in the tnsnames.ora file that is in it's ORACLE_HOME environment. With the
thin driver, you give it the DBMS machine name, port number (1521 is default),
and the DBMS's SID.
I hope this helps a bit,
Joe Weinstein at BEA
-
Re: Difference between Oracle OCI and thin Driver?
Peter Swampton wrote:
> As far as I know there are two different options to acces the Oracle database:
> With the thin or the OCI driver.
> What is the difference ?
>
> Peter
The thin driver is all Java. It can run anywhere without needing any other oracle
stuff installed. The OCI driver needs all the Oracle client installed. It uses
Oracle's native client libraries to communicate with the DBMS. The thin driver
just opens a raw socket to the DBMS and knows/uses the client-DBMS protocol itself.
Originally the OCI driver was faster, but in recent years this has been fixed,
especially for the 10g version of the thin driver. OCI has evolved too, but bugs
in native OCI code can still kill an entire JVM, whereas the thin driver is
completely safe in that regard.
To tell an OCI driver where to connect, you just have to tell it the entry
name in the tnsnames.ora file that is in it's ORACLE_HOME environment. With the
thin driver, you give it the DBMS machine name, port number (1521 is default),
and the DBMS's SID.
I hope this helps a bit,
Joe Weinstein at BEA
-
Re: Difference between Oracle OCI and thin Driver?
Peter Swampton wrote:
> As far as I know there are two different options to acces the Oracle database:
> With the thin or the OCI driver.
> What is the difference ?
>
> Peter
The thin driver is all Java. It can run anywhere without needing any other oracle
stuff installed. The OCI driver needs all the Oracle client installed. It uses
Oracle's native client libraries to communicate with the DBMS. The thin driver
just opens a raw socket to the DBMS and knows/uses the client-DBMS protocol itself.
Originally the OCI driver was faster, but in recent years this has been fixed,
especially for the 10g version of the thin driver. OCI has evolved too, but bugs
in native OCI code can still kill an entire JVM, whereas the thin driver is
completely safe in that regard.
To tell an OCI driver where to connect, you just have to tell it the entry
name in the tnsnames.ora file that is in it's ORACLE_HOME environment. With the
thin driver, you give it the DBMS machine name, port number (1521 is default),
and the DBMS's SID.
I hope this helps a bit,
Joe Weinstein at BEA
-
Re: Difference between Oracle OCI and thin Driver?
Peter Swampton wrote:
> As far as I know there are two different options to acces the Oracle database:
> With the thin or the OCI driver.
> What is the difference ?
>
> Peter
The thin driver is all Java. It can run anywhere without needing any other oracle
stuff installed. The OCI driver needs all the Oracle client installed. It uses
Oracle's native client libraries to communicate with the DBMS. The thin driver
just opens a raw socket to the DBMS and knows/uses the client-DBMS protocol itself.
Originally the OCI driver was faster, but in recent years this has been fixed,
especially for the 10g version of the thin driver. OCI has evolved too, but bugs
in native OCI code can still kill an entire JVM, whereas the thin driver is
completely safe in that regard.
To tell an OCI driver where to connect, you just have to tell it the entry
name in the tnsnames.ora file that is in it's ORACLE_HOME environment. With the
thin driver, you give it the DBMS machine name, port number (1521 is default),
and the DBMS's SID.
I hope this helps a bit,
Joe Weinstein at BEA
-
Re: Difference between Oracle OCI and thin Driver?
There's also the Oracle Instant Client (multi-platform) that (in
Windows) installs by copying the folder to the PC and setting an
environment variable (in Windows, add the folder to PATH). You can use
TNSNAMES or not (you can use a connect string pointing directly to the
server). If you use TNSNAMES, you need to add the TNS_ADMIN
environment variable pointing to the folder containing the TNSNAMES.ORA
file (I used same folder as the instant client). So far, this looks
pretty good. It's a much simpler install (you don't need to use the
Universal Installer) and removal is simply deleting the folder and
removing the variables.
There's a little more work involved if you use ODBC (just a batch file
to install the driver), but that's MS's fault, not Oracle's.
Here's a download link:
http://www.oracle.com/technology/sof...ent/index.html
.... and the FAQ:
http://www.oracle.com/technology/tec...nt/ic-faq.html
Jesse
-
Re: Difference between Oracle OCI and thin Driver?
There's also the Oracle Instant Client (multi-platform) that (in
Windows) installs by copying the folder to the PC and setting an
environment variable (in Windows, add the folder to PATH). You can use
TNSNAMES or not (you can use a connect string pointing directly to the
server). If you use TNSNAMES, you need to add the TNS_ADMIN
environment variable pointing to the folder containing the TNSNAMES.ORA
file (I used same folder as the instant client). So far, this looks
pretty good. It's a much simpler install (you don't need to use the
Universal Installer) and removal is simply deleting the folder and
removing the variables.
There's a little more work involved if you use ODBC (just a batch file
to install the driver), but that's MS's fault, not Oracle's.
Here's a download link:
http://www.oracle.com/technology/sof...ent/index.html
.... and the FAQ:
http://www.oracle.com/technology/tec...nt/ic-faq.html
Jesse