We're currently using ojdbc14.jar, should we be using ojdbc6.jar ?
Update: Oracle 10g being used
If you're working with java6, you can (and should) use ojdbc6.jar if it is compatible with your database.
Resources :
oracle.com - JDBC drivers
Short answer - yes, you should.
Long answer - look at compatibility tables in Oracle JDBC FAQ:
Which JDBC drivers support which versions of Oracle Database?
Which JDBC drivers support which versions of Javasoft's JDK?
For JDK 1.6 and Oracle 10g best option is o
Related
By default when you install the Oracle Database, it installs a JDK/JRE into the directory xxx/oracle/product/11.2.x.x/jdk/.
This appears to be hardcoded into the Oracle Tools such as opatch, dbca etc. i.e. Java is required to support the database management.
With the latest version of Oracle 11.2.0.4.3 the version of Java that is provided is 1.5.0_51.
Has anyone successfully patched this version of Java to a JDK 6/7/8 recent version? NB. The PSU updates from Oracle don't appear to patch this.
NB. This question isn't related to the OJVM which runs inside the Oracle Database.
You can't.
Well, you can, if you're willing to break your database installation and violate your support contract.
See this discussion:
The JVM is an integral part of Oracle and without the proper,
certified version of the JVM the database will not run properly. In
fact if you use Oracle installer and elect to remove the JVM the
database itself will be removed also.
Oracle 11g installs with JDK 1.5 and that is the ONLY version that is
certified to work properly with 11g. If you attempt to use anyother
version you are violating your support contract and will likely have
errors.
NB. This question isn't related to the OJVM which runs inside the Oracle Database.
And how do you know it's not related? The "OJVM which runs inside the Oracle database" has to have a JVM installation known to work with the database somewhere.
A bit late.
The embedded JVM cannot be upgraded with any arbitrary JDK/JRE by customers; it requires some development work in terms of security, memory management, and so on, as part of the RDBMS relase. Iow, only the database develpoment team can do it.
The 12c R1 release of the Oracle database comes with JDK 6 (the default) and JDK 7 (upgrade by running a one liner Perl script).
The RDBMS comes with a JRE for use by Oracle tools exclusively which is orthogonal to the embedded JVM.
I am using oracle 11g . I do not know what is the default driver comes with oracle 11g. I see ojdbc14-10.2.0.3.0 under my <TOMCAT_HOME>/lib. I am not sure what change i need to do to make sure i am using JDBC 4 driver ?
Do i need to replace ojdbc14-10.2.0.3.0 or i need to put some other jar under my oracle installation ?
According to Oracle article, Oracle Database 11g Release 1 (11.1) goes with JDBC drivers provide support for the JDBC 4.0 standard.
You should have the ojdbc6.jar in your classpath environment variable in order to have JDBC 4.0 standard support.
Take a look at Oracle's JDBC drivers list: for 11g and 11g2, only ojdbc5.jar and ojdbc6.jar are listed, but some says that ojbc14 should work just fine with Oracle11g.
The primary difference between ojbc14 and later versions is that it wouldn't support new JDBC API, so I suppose you should better go with newer drivers.
Has anyone looked into extracting the jdbc-odbc bridge from an earlier and using it with JRE8 ?
Is it practical / possible to update / improve it to work with Java 8 ?
Would it be legal ?
While this doesn't exactly answer your question, I was hunting for a free JDBC driver for Access, and found UCanAccess. I had success with this particular driver as a replacement while using SquirrelSQL with Access. Seeing as how your question is tagged ms-access, perhaps this might be an acceptable replacement for you.
Questions of this portation's legality aside, Sun's and Oracle's official positions have long been that --
the [JVM-bundled] JDBC-ODBC Bridge should be considered a transitional solution [...] Oracle does not support the JDBC-ODBC Bridge.
However, my employer, OpenLink Software, has produced enterprise-grade commercial Type 1 Bridges between JDBC and ODBC since Java 1.0, and these are fully compatible with the current Java 8 and any ODBC standard-compliant driver, including Microsoft's ODBC driver for Access. You can learn more here --
Single-Tier JDBC-ODBC Bridge Driver -- a JDBC driver for ODBC data sources
Single-Tier ODBC-JDBC Bridge Driver -- an ODBC driver for JDBC data sources
I have a java application which connects to Oracle database, but I want the application to use OS authentication instead of providing the credentials of the database user through the program. I was able to implement it in a JAVA application which was built using JDK 1.6 by using jdbc driver package ojdbc5.jar instead of classes12.jar (which I was using earlier). I did that because I read somewhere that classes12.jar doesn't support OS authentication.
Everything worked fine for this application, but when I tried to implement the same in a JAVA application built on JDK 1.4, I was getting errors while compiling the code by using ojdbc5.jar
How can I implement OS authentication on apps built on JDK 1.4?
You can't (And even if you could, it wouldn't be a good idea, since any user could impersonate another user using -Djava.user=someoneelse on the command line).
From the Oracle Docs:
In 11g release 2 (11.2), both the JDBC OCI and thin drivers support
all the Oracle Advanced Security features. Earlier releases of the
JDBC drivers did not support some of the ASO features.
ojdbc5.jar is for java 1.5, ojdbc6.jar is for java 1.6, and the older classes12.jar, which will work with java 1.4, stopped being supported with Oracle 10.
You might try the newest Oracle 10 driver, (try ojdbc14.jar), but even if it works, it's not really a good idea because it's just not secure.
What is the difference between the drivers provided using jtds.jar and jconn3.jar?
JTDS is open source (LGPL), the other is proprietary, made by sybase. In terms of which performs better, you would have to benchmark.
Sybase calls their latest JDBC jconn4.jar, so the version you are referencing complies with the JDBC 2.0 spec only. JTDS complies with JDBC 3.0. Whether or not that is important depends on the version of Java you are using to run your application.
jTDS works with both Microsoft SQL Server and Sybase. SQL Server is the product of a "collaboration" between Microsoft and Sybase, so that's not surprising.