[NEWSboard IBMi Forum]

Thema: JDBC

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    68

    Post JDBC

    Hallo Javaisten,

    habe ein Java Programm geschrieben, welches
    über JDBC eine AS400 file liest und eine Ausgabe tätigt. Auf dem PC funkt gut. Nun möchte ich dieses Programm auf die AS400 portieren und habe es kompeliert. Bei Ablauf des Programmes steht das Programm bei der Erstellung der Verbindung zur AS400. Den JDBC Treiber findet das Programm noch, aber bei "getConnection" rührt sich nichts mehr. Keine Fehlermeldung und nix. Ist das überhaupt möglich AS400 Daten in AS400 Java Programmen zu verwenden ???

    Alex

  2. #2
    Registriert seit
    Sep 2001
    Beiträge
    75

    Post

    Hi Alex,

    das geht sicher. Wenn der über getConnection tatsächlich nicht hinauskommt, würde ich z.B. mal versuchen, den LoginTimout explizit zu setzen:

    DriverManager.setLoginTimeout(30);

    Dann sollte er nach 30 Sekunden auch Fehler werfen, die dann mit printStackTrace() Auskunft geben, was ihm nicht gefällt.

    Christoph
    Chr****** Müller

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    68

    Post

    Hallo Christoph,

    ich habe das Problem gefunden. AS400 seitig scheint mit der Namensauflösung was nicht zu stimmen ( bei uns ). Nach 5 min Verbindungszeit hat es dann funktioniert.

    Hast du ( reinzufällig ) ein Beispiel dafür,
    wie man von der AS400 auf eine DB2 Datenbank
    per JDBC zugreifen kann ???

    Alex

  4. #4
    Registriert seit
    Sep 2001
    Beiträge
    75

    Post

    So ein abgeschlossenes reines Beispielprogramm leider nicht. Hier ein vereinfachtes Beispiel zum Export von AS/400 Daten, das echt im Einsatz war. Basiert auf dem Open Source Projekt Cameleon OSP. Dort sind dann die JDBC-Zugriffe in einer Klasse DataObject gekapselt.

    Aber vielleicht hat ja noch jemand ein elementareres Beispiel...

    /*
    * Copyright (c) 2001 Christoph Mueller. All rights reserved.
    * Public Domain sample code
    */

    package various;

    import de.must.wuic.*;
    import de.must.dataobj.*;
    import de.must.io.*;
    import de.must.util.*;
    import java.awt.*;
    import java.sql.*;

    public class PrExport extends ProgressFrame {

    public PrExport() {
    this.setTitle("AS/400-Daten exportieren");
    setProgressMaximum(1000);
    startThread();
    }

    protected void act() {
    try {
    Global.getInstance().createOrCheckConnections();
    TextFile fileNames = new TextFile("fileNames.txt");
    String fileName;
    while (!isCanceled() && (fileName = fileNames.readLine()) != null) {
    export(fileName);
    }
    }
    catch(Exception e) {
    e.printStackTrace();
    }
    finally {
    Global.getInstance().closeMainConnection();
    System.exit(0);
    }
    }

    private void export(String tableName) {
    System.out.println("Exporting " + tableName);
    DirectDataObject bisDataObject = new DirectDataObject(Global.getInstance().getMainConne ction(), tableName);
    Protocol output = new Protocol("outfiles\\" + tableName + ".txt");
    bisDataObject.select("*");
    int nbrOfColumns = bisDataObject.getColumnCount();
    int limiter = 0;
    int counter = 0;
    while (!isCanceled() && bisDataObject.nextRow() /* & ++limiter <= 1000*/) {
    setProgressValue(++counter);
    setMessage("Exporting record " + counter + " of " + tableName);
    // while (!isCanceled() && bisDataObject.nextRow()) {
    String line = "";
    for (int i = 0; i < nbrOfColumns; i++) {
    if (i > 0) line += "|";
    line += bisDataObject.getText(bisDataObject.getColumnName( i));
    }
    output.addEntry(line);
    // System.out.println(line);
    }
    output.close();
    bisDataObject.closeQuery();
    }

    }


    /*
    * Klasse Global
    * Copyright (c) 2001 Christoph Mueller.
    * Public Domain sample code
    */

    package various;

    import de.must.io.TextFile;
    import de.must.middle.GlobalStd;
    import de.must.dataobj.ConnectionHolder;
    import de.must.dataobj.ConnectionSpecification;

    public class Global extends GlobalStd {

    private static Global instance;

    public final static Global getInstance() {
    if (instance == null) {
    instance = new Global();
    }
    return instance;
    }

    protected ConnectionSpecification getActualConnectionSpecification() {
    return new ConnectionSpecification("DBNAME", "DBUSER", "USERPWD");
    }

    }
    Chr****** Müller

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    68

    Post

    Hey Christoph,

    vielen Dank erstmal. Schau mir das Beispiel mal an. Einen schönen Arbeitstag.
    Alex

Similar Threads

  1. Java, JDBC, iSeries und Tschechische/Russische/Chinesische Zeichen
    By Christian.Hesse in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 04-08-06, 10:04
  2. JAVA JDBC TREIBER
    By WPF in forum NEWSboard Java
    Antworten: 1
    Letzter Beitrag: 13-01-06, 17:32
  3. Java ... JDBC ... Zugriff DB2 - Port iSeries ???
    By bode in forum NEWSboard Java
    Antworten: 7
    Letzter Beitrag: 02-09-05, 15:09
  4. java.lang.NullPointerException bei jdbc zugriff
    By burton007 in forum NEWSboard Java
    Antworten: 8
    Letzter Beitrag: 02-09-05, 15:08
  5. Zugriff auf AS/400 mit JDBC
    By TARASIK in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 02-08-04, 08:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •