[NEWSboard IBMi Forum]

Thema: Commit im CL

  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    833

    Post Commit im CL

    Hallo zusammen,

    ein Kopierjob soll unter Transaktion laufen.

    Der Ablauf im CL Programm sieht so aus:

    1. CPYF
    2. Update mit RUNSQL

    wenn der SQL fehlschlägt soll ein ROLLBACK durchgeführt werden.

    Mein Programm sieht so aus
    PHP-Code:
    STRCMTCTL  LCKLVL(*CHG)                                   
                                                              
    CPYF       FROMFILE(&FROMLIB/&FROMFILETOFILE(&TOFILE) + 
                 
    MBROPT(*ADD) PRINT(*ERRORFMTOPT(*MAP +     
                 *
    DROPERRLVL(*NOMAX)                        
    /* update kopiert Daten  */                               
    CHGVAR     VAR(&ASQLVALUE('update ' *BCAT &TOFILE +     
                 *
    BCAT ' SET ...... ')     
    RUNSQL     SQL(&ASQL)                                     
    MONMSG     MSGID(SQL9010EXEC(DO)                        
    ROLLBACK                                                  
    enddo 
    Das Problem ist:
    Ich schaffe es nicht das der Rollback auch die kopierten Daten zurückrollt.

    Hat jemand eine Idee ?

    Gruß
    Michael

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Nun ja, wenn du dich an Native-IO (wie CPYF) erinnerst so musst du doch bei jeder F-Bestimmung angeben, ob du diese Datei unter Commit stellst.
    Statt CPYF solltest du ebenso einen "insert into Myfile select * from Myfile2" als RUNSQL ausführen.
    Der *MAP *DROP weist allerdings darauf hin, dass die Felder nicht alle namentlich passen, so musst du den Insert halt auscodieren "insert into myfile (f1, f2, ...) values(select f1, f2, ... from myfile2)".
    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

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... nimm eine ordentliche Programmiersprache, wenn es schon Huddelprogrammierung sein soll, mach alles mit SQL, oder nach Altvätersitte mit Sicherungskopie.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Jan 2001
    Beiträge
    833
    okay,

    ich habe es befürchtet. Allerdings sind es hier ca.1300 Copies ( in unterschiedlichen Bibliotheken)
    von denen der Satzaufbau zwar identisch sein sollte, aber es nicht ist.
    Gruß
    Michael

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... ich leiste zwar ungern Beihilfe zum Huddel, aber RMVJRNCHG gibt es auch noch.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Nun, Fluch der bösen Tat, wenn man nachträglich versucht Journalisierung aufzubauen.
    Dies ist halt mit etwas Aufwand verbunden...

    Und RMVJRNCHG macht die Sache ja auch nicht einfacher.
    Immerhin benötigt man dazu 2 RTVJRNE's um Start/Ende des CPYF festzustellen.
    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

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Und RMVJRNCHG macht die Sache ja auch nicht einfacher.
    Immerhin benötigt man dazu 2 RTVJRNE's um Start/Ende des CPYF festzustellen.
    ... keineswegs, JRN FILE und TOJOBO sollten reichen.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ob da für einen CPYF tatsächlich immer ein eigener Job initiiert wird?
    Ich kenn da Altanwendungen, die machen das innerhalb eines Jobs durchaus mehrfach und bei 1300 dieser CPYF ist das auch durchaus wahrscheinlich.

    Um es mit deinen Wort zu sagen: Das beste Konzept scheitert immer am Huddel.

    Vielleicht sollte da etwas mehr Gehirnschmalz in das Bearbeiten der Quellen gesteckt werden. Schließlich könnte man qualifiziert nach den CPYF's suchen und diese durch einen generierten RUNSQL ersetzen.
    Man ersetze also Huddel durch Knuddel!
    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

  9. #9
    Registriert seit
    Jan 2001
    Beiträge
    833
    das Thema ist das der Huddel wegkommt.
    Ich habe Daten pro Firma getrennt in versch.Bibliotheken und das ab 1994
    für jedes jahr eine Lib z.b firma1994/datei das bis heute.
    Zusätzlich natürlich alte Join Files. Davon jede Menge.
    Jetzt ( 2017 ) wird das alles konsolidiert damit der Huddel eben nicht mehr vorkommt.
    Da fragt man sich was die Entwickler einer Software in den Jahren so gemacht haben.
    Aber wie immer:
    Altlasten , Historisch gewachsen :-)
    Gruß
    Michael

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Ich kenn da Altanwendungen, die machen das innerhalb eines Jobs durchaus mehrfach und bei 1300 dieser CPYF ist das auch durchaus wahrscheinlich.
    ... das müsste doch "kannte" heißen : ))) , solch Programm-technisches Unkraut gehört konsequent ausgejätet!

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von mk Beitrag anzeigen
    Altlasten , Historisch gewachsen :-)
    Gruß
    Michael
    ... das muss - ehrlicherweise - historisch geschrumpft heißen.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Commit ?
    By HEBORA in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 18-10-15, 20:00
  2. IFS und Commit
    By mk in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 23-02-15, 15:57
  3. SAVLIB und COMMIT-Definitionen
    By Bodo Roggenkamp in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 10-03-03, 09:54
  4. COMMIT und ROLLBACK in RPG+SQL
    By Willi1 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 02-05-02, 22:54
  5. Commit Control
    By lorenzen in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 06-02-01, 10:03

Berechtigungen

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