Unterschiede zwischen den Klassen12.jar, ojdbc14.jar, ojdbc5.jar und ojdbc6.jar

9

Wir planen, unsere Anwendungsserver auf eine neue Version von JRun zu aktualisieren, die ein Upgrade von Java 1.4 auf Java 1.6 mit sich bringt. Als Teil davon haben wir verschiedene Teile unseres Software-Stacks getestet und festgestellt, dass wir uns auch unsere Oracle JDBC-Treiber ansehen müssen.

In Bezug auf die Oracle-Site und die Dokumentation scheinen die verschiedenen Versionen in erster Linie auf verschiedene Versionen der JDBC-API abzuzielen, die in der Regel der Version der JVM entsprechen, in der sie eingeführt wurden. Da Java (im Allgemeinen) abwärtskompatibel ist, scheint dies der Fall zu sein Bei ojdbc14.jar zu bleiben mag am sinnvollsten sein, aber ich hatte gehofft, jemand da draußen könnte die Dinge ein bisschen besser klären.

In den Dokumenten wird speziell ein solches Diagramm aufgerufen, weshalb ich mich frage, ob ojdbc14.jar unter Java 6 offiziell unterstützt wird.

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

Gibt es etwas, das ich aus Systemsicht beachten sollte, wenn ich Treiber und virtuelle Maschinen mische und anpasse?

Goyuix
quelle
Beachten Sie, dass dies keine Versionsnummer ist, sodass ojdbc14.jar nicht älter / kompatibler als ojdbc6.jar ist. Es wird lediglich das Dateiformat der unteren Klasse und nicht alle JDBC-Funktionen verwendet. Oracle empfiehlt, immer die neueste Instant Client-Version zu verwenden - auch wenn Ihre Datenbank eine ältere Version ist.
eckes

Antworten:

6

Ja, Sie können die kleineren Treiber auf neueren Java-Versionen ausführen. Es ist nur so, dass ojdbc14.jar keine JDBC3- und JDBC4-Funktionen enthält.

Sie müssen zwischen Laufzeit und Kompilierungszeit unterscheiden. Zur Laufzeit können Sie ojdbc14.jar in einem JRE6 verwenden, solange Ihr App-Code keine JDBC4-Funktionen verwendet. Wenn Sie ojdbc14.jar im Erstellungspfad verwenden möchten, treten möglicherweise Probleme mit der nicht implementierten Methode auf.

Ich empfehle jedoch generell, die neuesten (dh 11.1.0.7) JDBC-Treiber und die höchstmögliche Version zu verwenden. (Egal was die DB-Version ist).

Verwenden Sie den OCI- oder THIN-Modus?

eckes
quelle
Wir verwenden den THIN-Modus.
Goyuix
1
Verwenden Sie die höchste verfügbare Version = mehr Fehler behoben ...
Slovon
1
@slovon Tatsächlich gibt es ein Zertifizierungsdokument von Oracle, das Ihnen sagt, welche Treiber mit welcher Datenbank verwendet werden können. Die 12.1-Treiber sind mit 12.1 und 11.2 zertifiziert. Für ältere RDBMS benötigen Sie die 11.1-Treiber. (Und 12.1 Client kommt mit einem ojdbc7.jar, aber nicht im InstantClient)
eckes