Diferenças entre classes12.jar, ojdbc14.jar, ojdbc5.jar e ojdbc6.jar

10

Planejamos atualizar nossos servidores de aplicativos para uma nova versão do JRun, que traz consigo uma atualização do Java 1.4 para o Java 1.6. Como parte disso, testamos várias partes de nossa pilha de software e percebemos a necessidade de examinar também os drivers JDBC da Oracle.

Observando o site e a documentação do Oracle, as diferentes versões parecem ter como alvo principal várias versões da API JDBC, que tendem a corresponder à versão da JVM em que foram introduzidas. Com o Java (geralmente) sendo compatível com versões anteriores, parece que aderir ao ojdbc14.jar pode fazer mais sentido, mas eu esperava que alguém lá fora pudesse esclarecer um pouco melhor as coisas.

Os documentos chamam especificamente um gráfico como este, o que me faz pensar se o ojdbc14.jar é oficialmente suportado no 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

Existe algo que eu deveria estar ciente da perspectiva dos sistemas ao misturar e combinar drivers e máquinas virtuais?

Goyuix
fonte
Observe que este não é um número de versão; portanto, ojdbc14.jar não é mais antigo / mais compatível que ojdbc6.jar, apenas usa o formato de arquivo de classe inferior e nem todos os recursos JDBC. A Oracle recomenda sempre usar a versão mais recente do cliente instantâneo - mesmo quando seu banco de dados for uma versão mais antiga.
eckes 13/12/12

Respostas:

6

Sim, você pode executar os drivers menores nas versões mais recentes do java. É apenas que ojdbc14.jar não contém os recursos JDBC3 e JDBC4.

Você precisa diferenciar entre tempo de execução e tempo de compilação. No tempo de execução, você pode usar ojdbc14.jar em um JRE6, desde que o código do aplicativo não esteja usando os recursos do JDBC4. Se você deseja usar ojdbc14.jar no caminho de construção, poderá encontrar problemas com o método não implementado.

No entanto, eu sugiro usar os drivers JDBC mais recentes (ou seja, 11.1.0.7) e a versão mais alta possível. (Não importa qual seja a versão do banco de dados).

Você está usando o modo OCI ou THIN?

eckes
fonte
Estamos usando o modo FINO.
Goyuix
1
usar versão mais alto disponíveis = mais bugs corrigidos ...
slovon
1
@ eslovon, na verdade, existe um documento de certificação da oracle que informa quais drivers podem ser usados ​​com qual banco de dados. os drivers 12.1 são certificados com 12.1 e 11.2. Para RDBMS mais antigos, você precisa dos drivers 11.1. (E 12,1 cliente vem com uma ojdbc7.jar bem, mas não no instantclient)
Eckes