Diferencias entre las clases 12.jar, ojdbc14.jar, ojdbc5.jar y ojdbc6.jar

10

Estamos planeando actualizar nuestros servidores de aplicaciones a una nueva versión de JRun que lleva consigo una actualización de Java 1.4 a Java 1.6. Como parte de eso, hemos estado probando varias piezas de nuestra pila de software y nos hemos dado cuenta de la necesidad de mirar también nuestros controladores Oracle JDBC.

Mirando el sitio y la documentación de Oracle, las diferentes versiones parecen estar dirigidas principalmente a varias versiones de la API JDBC, que tienden a corresponder a la versión de la JVM en la que se introdujeron. Con Java (generalmente) siendo compatible con versiones anteriores, parece que seguir con ojdbc14.jar podría tener más sentido, pero esperaba que alguien por ahí pudiera aclarar las cosas un poco mejor.

Los documentos expresan específicamente un gráfico como este, lo que me hace preguntarme si ojdbc14.jar es oficialmente compatible con Java 6.

classes12.jar - for Java 1.2 and 1.3
ojdbc14.jar - for Java 1.4 and 1.5
ojdbc5.jar - for Java 1.5
ojdbc6.jar - for Java 1.6

¿Hay algo que debería tener en cuenta desde la perspectiva de los sistemas al mezclar y combinar controladores y máquinas virtuales?

Goyuix
fuente
Tenga en cuenta que este no es un número de versión, por lo que ojdbc14.jar no es más antiguo / más compatible que ojdbc6.jar, solo usa un formato de archivo de clase inferior y no todas las características de JDBC. Oracle recomienda usar siempre la última versión de cliente instantáneo, incluso cuando su base de datos es una versión anterior.
Eckes

Respuestas:

6

Sí, puede ejecutar los controladores más pequeños en las nuevas versiones de Java. Es solo que ojdbc14.jar no contiene las características JDBC3 y JDBC4.

Debe diferenciar entre tiempo de ejecución y tiempo de compilación. En tiempo de ejecución, puede usar ojdbc14.jar en un JRE6 siempre que el código de su aplicación no esté usando las funciones de JDBC4. Si desea utilizar ojdbc14.jar en la ruta de compilación, es posible que experimente probems con un método no implementado.

Sin embargo, sugiero utilizar los últimos controladores JDBC (es decir, 11.1.0.7) y la versión más alta posible. (No importa cuál sea la versión DB).

¿Estás usando el modo OCI o THIN?

Eckes
fuente
Estamos usando el modo THIN.
Goyuix
1
usar la versión más alta disponible = más errores corregidos ...
slovon
1
@slovon en realidad hay un documento de certificación de Oracle que le dice qué controladores se pueden usar con qué base de datos. Los controladores 12.1 están certificados con 12.1 y 11.2. Para RDBMS anteriores, necesita los controladores 11.1. (Y el cliente 12.1 viene con un ojdbc7.jar también, pero no en el InstantClient)
eckes