[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von shuelzer Beitrag anzeigen
    Es wird alles per SQL gemacht und die Lib ist journalisiert. Ein Rollback funktioniert auch, nur der Status ist eben noch 1 nach dem Rollback.

    Welche Parameter muss ich denn bei dem CRTSQLRPGI beachten?

    Commit steht auf *NONE.
    ... was verstehst Du jetzt unter Status? Was zeigt WRKCMTDFN an?

    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/

  2. #2
    Registriert seit
    May 2013
    Beiträge
    9
    Unter Status verstehe ich den "Status" der Transaktion, den ich mit get Diagnostics abfragen kann.

    WRKCMTDFN zeigt eine offene Transaktion für den Job nach dem Commit.

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von shuelzer Beitrag anzeigen
    Unter Status verstehe ich den "Status" der Transaktion, den ich mit get Diagnostics abfragen kann.

    WRKCMTDFN zeigt eine offene Transaktion für den Job nach dem Commit.
    ... was sagt denn der SQLCODE direkt nach jedem sql statement dem Commit? und wie sieht das bei WRKCMTDFN genau aus (dass da eine Commit Definition angezeigt wird ist so in Ordnung

    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
    May 2013
    Beiträge
    9
    Zitat Zitat von BenderD Beitrag anzeigen
    ... was sagt denn der SQLCODE direkt nach jedem sql statement dem Commit? und wie sieht das bei WRKCMTDFN genau aus (dass da eine Commit Definition angezeigt wird ist so in Ordnung

    D*B
    Ich weiss nicht genau welche Informationen Sie brauchen, aber der SQLCODE ist nach jedem Statement 0.

    WKRCMTDFN zeigt eine neue Commit-Definition, ab dem Zeitpunkt des Ausführens von Set Isolation Level mit der Standardsperrstufe *CS.
    Lokal anstehende Änderungen steht auf Nein vor dem Insert.
    Nach dem Insert dann auf Ja und nach dem Commit wieder auf Nein. Die Commit-Definition bleibt bestehen.

    Jetzt war die Idee, nach dem Commit oder Rollback mit Set Isolation no commit die Transaktion zu beenden. Funktioniert aber auch nicht.

    Ein exec sql set option liefert ein SQL-Vorkompilierungsfehler.

    Sry für die vielen Fragen. Wir sind noch neu in der Thematik Transaktionen auf System i und machen gerade unsere ersten Gehversuche.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Embedded SQL startet (wenn nicht vorher manuell aufgerufen) automatisch STRCMTCTL.
    Damit wird für die Aktivierungsgruppe eine Commitdefinition erstellt.
    Diese wird erst nach Ende des letzten SQL-Programmes bzw. der Aktivierungsgruppe gelöscht.

    Der Hinweis "nach dem Commit wieder auf Nein" besagt doch, dass die Transaktion erfolgreich abgeschlossen ist.

    Was stört dich also das Bestehen der Commit-Definition ?
    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
    May 2013
    Beiträge
    9
    Umso länger ich drüber nachdenke habe ich kein echtes Problem.
    Man muss nur einmal wissen, wie die As400 da tickt.

    Ich hatte eine Funktion geschrieben openSqlTransaktion() die eine neue Transaktion starten sollte. Diese Funktion sollte eine Exception werfen, wenn ich mich bereits in einer Transaktion befinde. Andere Funktionen, wie z.B. anlegenArtikel() sollten diese dann verwenden. Wenn aber ab dem ersten Aufruf immer eine geöffnet ist, muss ich immer abfragen ob schon eine offen ist und daran teilnehmen. Um das mal vereinfacht auszudrücken.

    Danke für die Unterstützung

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von shuelzer Beitrag anzeigen
    Ich weiss nicht genau welche Informationen Sie brauchen, aber der SQLCODE ist nach jedem Statement 0.

    WKRCMTDFN zeigt eine neue Commit-Definition, ab dem Zeitpunkt des Ausführens von Set Isolation Level mit der Standardsperrstufe *CS.
    Lokal anstehende Änderungen steht auf Nein vor dem Insert.
    Nach dem Insert dann auf Ja und nach dem Commit wieder auf Nein. Die Commit-Definition bleibt bestehen.

    Jetzt war die Idee, nach dem Commit oder Rollback mit Set Isolation no commit die Transaktion zu beenden. Funktioniert aber auch nicht.

    Ein exec sql set option liefert ein SQL-Vorkompilierungsfehler.

    Sry für die vielen Fragen. Wir sind noch neu in der Thematik Transaktionen auf System i und machen gerade unsere ersten Gehversuche.
    ...
    - Die Commit Definition wird bei embedded SQL implizit gestartet und beendet sich bei Ende der ACTGRP automatisch (Vorsicht: RCLACTGRP hat default *normal)
    - Transaktionen werden implizit gestartet mit der ersten Datenoperation unter commit.
    - commit beendet die Transaktion und gibt alle Sperren frei
    - rollback nimmt anstehende Änderungen zurück und beendet die Transaktion ebenfalls mit Freigabe der Sperren

    mit anderen Worten: alles im grünen Bereich

    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. AS400 CL / RPG - ftp Programm
    By Josie314 in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 24-07-12, 07:21
  2. Rückgabewert vom RPG Programm
    By mk in forum NEWSboard Java
    Antworten: 8
    Letzter Beitrag: 21-04-11, 21:51
  3. MI Source aus einem RPG Programm erstellen
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 13-07-06, 10:51
  4. Java Programm aus ILE RPG aufrufen
    By PGMR in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 02-02-05, 13:10

Berechtigungen

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