[NEWSboard IBMi Forum]

Thema: Commit ?

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.942
    Reicht ein einfaches "COMMIT" nach jeder SQL-Anweisung?

    Standarteinstellungen für CRTSQLRPGI sind zur Zeit:
    COMMIT(*CS)
    OPTION(*SYS *NOEXTIND *COMMA )
    TGTRLS(V7R1M0)
    ALWCPYDTA(*OPTIMIZE)
    CLOSQLCSR(*ENDMOD)
    Wo wird der Commit überhaupt gesetzt? Innerhalb des Moduls? Irgendwann nach der Ausführung des/der SQL-Statements oder nicht innerhalb des Moduls?
    Erfolgt kein Commit innerhalb des Moduls, könnte die Option CLOSQLCSR=*ENDMOD den Rollback verursachen. Beim Beenden des Moduls werden die ODPs gelöscht (was im Allgemeinen sowieso keine allzu gute Idee ist). Da die Updates vor dem Schließen der ODPs nicht commitet werden, könnte es sein, dass die nicht festgeschriebenen Änderungen zurückgesetzt werden.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.785
    Cursor (sind nur zum Lesen) haben mit ODP's nicht viel zu tun.
    Cursor werden geschlossen, wobei die ODP's zur Optimierung aufbleiben können.
    Da ein Cursor keine Daten ändern kann (for-update-Cursor benötigen einen Update) wüsste ich nicht, wie das Schließen einen Rollback auslösen kann.
    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
    Feb 2001
    Beiträge
    20.785
    FRCRATIO(1) ist nicht zu verwechseln mit SEQONLY(*YES/*NO).
    FRCRATIO(1) hat direkte Auswirkung auf die Performance.
    In simpler CPYF wird u.U. um Faktor 1000 langsamer bei eingeschaltetem FRCRATIO(1), was halt mit der Kontrolle zu tun hat, ob der Satz auf der Platte ist oder nicht.

    Was die RPG-Pufferung angeht, so trifft diese nur bei I und O-Dateien zu.
    Hier wird erst mal nur durch die Runtime "gepuffert" bevor die Daten an das OS abgegeben werden.
    Wobei durch FRCRATIO(1) dieses wieder ausgeschaltet wird (ominöse Log-Meldung "Zugriff wurde in SEQONLY(*NO) geändert").

    Ich habe in einer Altanwendung allein durch abschalten des FRCRATIO Laufzeiten von Stunden in Minuten gekürzt.
    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
    Dec 2014
    Beiträge
    310
    Ja sag ich doch, dass FRCRATIO die Performance beeinflusst ...

    Allerdings hat das bei RPG nur Auswirkung auf "O"-Dateien, nicht aber bei "I"
    (die Eingabe wird dadurch nicht beschleunigt. Das ginge (speziell bei Sequentiellem Lesen) zB durch Einschalten des Expert Cache, welcher komischerweise bei den meisten Maschinen nicht beachtet wird).

    Dass durch Abschalten von FRCRATIO das Ganze schneller wird, ist daher klar (aber eben nur beim Output), das habe ich ja aber genau so beschrieben.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.785
    Stimmt, beim Lesen hat das keine Auswirkung.
    FEOD hat keine nennenswert verlangsamende Wirkung.
    Bei RPG-geblockten O-Dateien erzwingt dieses nur das Ausgeben des Puffers.
    Somit kann man beim Return mit *INLR = OFF sicher sein, alle Daten ans OS abgegeben zu haben.
    Der Write-Cache (OS/400, Platten-Puffer) wird trotzdem verwendet.
    FRCRATIO führt meist dazu, dass der Blockungswunsch beim Schreiben schon beim OPEN abgelehnt wird, ein FEOD somit nichts zu tun hat.
    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

Similar Threads

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

Tags for this Thread

Berechtigungen

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