[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2004
    Beiträge
    18

    Java BatchUpdate ohne Journal

    Hallo,

    ich habe ein java-Programm geschrieben hier die Code-Fragemente

    String urlas = "jdbc:as400://"+ as400host +";naming=sql;errors=full";

    String sqlupdbde="INSERT INTO YABCLIB.DATEI (Feld1,Feld2) Values (?,?)";

    Object a =Class.forName("com.ibm.as400.access.AS400JDBCDriv er").newInstance();
    DriverManager.registerDriver((Driver)a);
    connas = DriverManager.getConnection(urlas,as400user,as400p wd);

    connas.setAutoCommit( false );
    stmtasbde = connas.prepareStatement(sqlupdbde);

    stmtasbde.setInt(1,"ABC");
    stmtasbde.setInt(2,"XYZ");
    stmtasbde.addbatch();

    ..
    stmtasbde.executeBatch();
    connas.commit();
    connas.setAutoCommit(true);

    Hierbei kommt dann die Fehlermeldung
    -----BatchUpdateException-----
    SQLState: 55019
    .... Journal ....

    Wie kann man das verhindern; möchte kein Journal anlegen ?

    vorab vielen Dank

  2. #2
    Registriert seit
    Jul 2004
    Beiträge
    18
    das erste connas.setAutoCommit( true ); setzen
    dann geht's

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn deine Datei nicht journalisiert wird, kannst du auch kein Commit verwenden.

    PS:
    Warum eigentlich Batch und nicht Direct ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Jul 2004
    Beiträge
    18
    Zitat Zitat von Fuerchau
    Wenn deine Datei nicht journalisiert wird, kannst du auch kein Commit verwenden.

    PS:
    Warum eigentlich Batch und nicht Direct ?
    --> Ich muss so ca. 10000 Datensätze "inserten" -> aus performancegründen?

    warum dauert der anmeldeprozess solange - connecting auf die as/400:
    das java programm läuft innerhalb der q-shell auf der as400 ?

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Es gibt keinen Performance-Unterschied zwischen Batch und Direct, ich tendiere sogar dazu, dass der direkte SQL schneller ist.
    Mittels Batch werden die SQL-Befehle innerhalb der Java-Umgebung gepuffert (kostet Speicher) und dann intern per Execute zur Ausführung gebracht.
    Desweiteren hast du keine richtige Kontrolle über die Aktion. Beim 1. Fehler hört der Batch nämlich auf !

    Mal ganz blöd gefragt: Warum machst du das mit Java auf der AS/400 ???
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Jul 2004
    Beiträge
    18
    ich weiß, viele wege führen nach rom.

    muss zunächst ein ftp-datei transfer machen, um daten auf die as400
    zu bringen. wird wahrscheinlich später durch direktzugriff auf eine oracle-db geändert.
    erspare mir mit java die cl-rpg-programmierung.

    hast du vielleicht eine erklärung für das "lange" laufzeitverhalten bei dem verbindungsaufbau zur as400? wie kann man das beschleunigen?

    vorab vielen dank

Similar Threads

  1. Java und Fehlermeldung jva0122 bei simplen "Hello World"
    By TARASIK in forum IBM i Hauptforum
    Antworten: 21
    Letzter Beitrag: 30-03-11, 13:48
  2. Java Version
    By Muchi in forum NEWSboard Java
    Antworten: 2
    Letzter Beitrag: 07-11-06, 11:00
  3. Antworten: 3
    Letzter Beitrag: 06-06-06, 15:57
  4. Java Developer Kit 1.4
    By usafft in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 25-04-06, 07:23
  5. Journal
    By jojoschluckfirma in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 21-06-05, 14:21

Berechtigungen

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