[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2006
    Beiträge
    27

    Commit und Rollback bzw. nicht Rollback

    Moin zusammen,

    noch eine Anfrage zu dem o.a. Thema im Rahmen unserer Anwendungsmodernisierung.

    Derzeit erstellt mein Kunde eine Anwendung mit .Net und der Verbindung über DB2connect zum System i.
    Über SQL-Trigger werden die "neuen" Daten in die "Alte Welt" geschrieben. Die ganze .Net Anwendung läuft unter einer Transaktionssteuerung, die im Fehler-Fall alle Datenbank-Änderungen zurücksetzt(Rollback).
    Allerdings werden über SQL-Trigger/Stored Procedures auch Log- und Error-Tables geschrieben, die natürlich nicht vom Rollback betroffen sein sollen.

    Wie lässt sich das bewerkstelligen. Derzeit sind nach dem Rollback auch die Einträge in den Log- und Error-Tables verschwunden, was die Analyse wesentlich erschwert.
    Die Ausgabe dieser Daten erfolgt entweder direkt mit einem SQL-Trigger oder über eine Stored Procedure, die aus einem SQL-Trigger aufgerufen wird.

    Vielen Dank für eure Hilfe.

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... commit scope ist die connection. Wird vom :net geschrieben, braucht man für die log/error Ausgaben eine eigene Connection. Wird das lokal auf der AS gemacht, ist commit scope die ACTGRP. Etwas einfacher, aber weniger Transaktions scharf, ist die Error Ausgabe nach dem rollback in einer weiteren Transaktion.

    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/

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Oder andersrum gesagt:
    Wenn das Programm für das Log in einer eigenen ACTGRP liegt, unterliegt er nicht dem Commit/Rollback.
    D.h., der Trigger muss ein Log-Handler/Service-Prozedur in einer eigenen ACTGRP aufrufen.
    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
    Mar 2002
    Beiträge
    5.287
    ... man könnte allerdings auch die DB2 Erweiterung von SQL benutzen und eine isolation clause (with NC) bei den Schreiboperationen der LOG und Error Daten ergänzen. Einzelheiten und Beispiele: frag Tante Google oder RTFM

    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/

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Sofern die Logs mit RPG geschrieben werden, wird in den F-Bestimmungen kein Commit angegeben.

    Sofern die Logs mit SQL geschrieben werden, wird am Ende des Insert/Update-Statements WITH NC (= with NO Commit) angegeben.
    Dann spielt es auch keine Rolle, ob der Insert/Update unter Commitment Control ausgeführt wird oder nicht und ob der commitment scope beim STRCMTCTL (Start Commitment Control) auf *ACTGRP oder *JOB steht.

    Birgitta
    Birgitta Hauser

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

Similar Threads

  1. Commit im CL
    By mk in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 09-03-17, 13:09
  2. Commit ?
    By HEBORA in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 18-10-15, 20:00
  3. IFS und Commit
    By mk in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 23-02-15, 15:57
  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
  •