PDA

View Full Version : Native JDBC Driver



beegee
28-03-07, 12:28
Hallo,

wo finde ich auf meiner i5 (IFS) unter V5R3 den native JDBC Driver, sprich den DB2-Driver.

Grüße

Fuerchau
28-03-07, 12:57
Im iSeriesAccess Java-Toolkit.

beegee
28-03-07, 13:58
Danke, aber in welchem Verzeichnis ?
QIBM\ProdData ..... ?

KM
28-03-07, 14:17
Native JDBC:

/QIBM/ProdData/Java400/ext/db2_classes.jar

beegee
28-03-07, 14:43
Danke, gefunden.

Wie in diesem Forum auch diskutiert, kommt der Fehler
java.sql.SQLException: INTERNAL ERROR: Creation of DB2Driver object for registering with DriverManager failed.

Lt. Doku muß man hier die CCSID von 65535 ändern. Komischerweise habe ich diesen Wert gar nicht im Sytemwert.

Weiß wer den User oder den Jobnamen unter welchen die JVM auf der iSeries gestartet wird, damit ich dort die CCSID ändern kann ?

KM
28-03-07, 15:09
Warum willst Du denn unbedingt den nativen Treiber benutzen ? Ich persönlich habe den noch nie verwendet, sondern immer nur den Toolbox-Treiber. Da kannst Du für das CCSID-65535-Problem die Option translate binary=true angeben. Dann werden die Zeichen gemäß der Job-CCSID konvertiert. Das würde dann z.B. folgendermaßen aussehen:


// Verbindung zur iSeries aufbauen
String is_driver = "com.ibm.as400.access.AS400JDBCDriver";
String is_url = "jdbc:as400://localhost;naming=SYSTEM;translate binary=true";
Class.forName(is_driver);
Connection connection = DriverManager.getConnection(is_url);

Gruß,
KM

BenderD
28-03-07, 16:10
Hallo,

die JVM wird bei Batch Jobs im selben Job gestartet, wo java aufgerufen wird, bei Interaktiven Jobs wird ein Batch immediate nebendran geklebt, der das Environment des Jobs, der java aufruft kopiert.

mfg

Dieter Bender


Danke, gefunden.

Wie in diesem Forum auch diskutiert, kommt der Fehler
java.sql.SQLException: INTERNAL ERROR: Creation of DB2Driver object for registering with DriverManager failed.

Lt. Doku muß man hier die CCSID von 65535 ändern. Komischerweise habe ich diesen Wert gar nicht im Sytemwert.

Weiß wer den User oder den Jobnamen unter welchen die JVM auf der iSeries gestartet wird, damit ich dort die CCSID ändern kann ?

Tossenberger
23-10-07, 16:27
Für den der es will oder braucht - die Option translate binary=true funktioniert auch mit dem Native Treiber.

Gegenüber dem Toolbox Treiber konnte ich allerdings einen Unterschied ausmachen: Unter der Toolbox ist das Feld laut Resultset ein Character Feld, beim Native Treiber ein BINARY Feld. Der Zugriff via getString() liefert aber in beiden Fällen das richtige Resultat.

Getestet unter V5R3.

Gruß
RT