[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.944
    Bei STRSQL musst du vorher einen STRCMTCTL absetzen sonst gehts da auch nicht.
    Das stimmt nicht! SQL (interaktives oder auch embedded SQL) führen den STRCMTCTL (mit Unterlassungswerten aus), sofern mit Commitment Control gearbeitet wird und der STRCMTCTL in dem Job noch nicht ausgeführt wurde!

    Dateien, die nicht aufgezeichnet werden, können beim Rollback auch nicht zurückgedreht werden.
    Wird mit SQL und Commitment Control gearbeitet und wird die Datei nicht aufgezeichnet, führt SQL den Insert, Update oder Delete nicht durch, sondern bringt die Fehlermeldung:
    MyTable in MyLib für Operation ungültig.

    Wenn man nur eine Transaktionssicherheit gewährleisten will, kann man die Journal-Receiver so definieren, dass sie sobald sie abgehängt werden gelöscht werden. Ein Journal-Receiver bleibt solange geöffnet, bis die letzte angefangene Transaktion beendet wird.

    Im interaktiven SQL (nach STRSQL) kannst Du Deine Session-Attribute mal mit F13 ändern, und zwar den Commitment-Level auf *ALL oder so setzen. Danach kannst Du sofort ROLLBACK und COMMIT ausprobieren. Anschließend bitte mal mit den Alternativen zu *ALL beschäftigen, denn *ALL blockiert geänderte Sätze, bis der aktuelle COMMIT-Zyklus beendet wird (ROLLBACK oder COMMIT).
    Ich würde nicht gerade mit dem höchsten Commitment-Level *ALL anfangen, bei dem ich mir alles dicht mache, sondern mit dem niedersten UR (uncommitted read) oder *CHG. Ein unter Commit gesperrter Satz kann nur durch den nächsten Commit oder Rollback im gleichen Job wieder freigegeben werden, z.B. der RPG-Befehl UNLOCK oder die Erweiterung (N) ziehen nicht!

    ... "Schmalspur"-Journaling mit Gewährleistung der Transaktionssicherheit sollte man auf alle Fälle fahren.

    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
    Mar 2002
    Beiträge
    5.392
    ... Commit Level *ALL ist keineswegs die höchste Sperrstufe, sondern entspricht in ANSI Sprache dem repeatable read; diese Sperrrstufe ist in Programmen bequem für updates ohne Verwendung eines Cursors, Vorsicht ist angebracht bei Konstrukten wie select max(KundeId), das könnte die ganze Tabelle sperren.

    Für interaktives SQL kommen in erster Linie in Betracht:
    *CHG (entspricht read uncommited) zur Absicherung von Bulk updates
    *CS (entspricht read commited) hiermit lassen sich konsistente Sichten während der Verarbeitung sicherstellen (allerdings nur, wenn die Anwendungen Commit verwenden, tut sie das nicht geht sowas nur im Batch)

    BTW: der SQL Standard fordert serializable als default, was im DB2/400 so lausig implementiert ist, dass das mit RLA garnicht verwendbar ist!

    D*B


    Zitat Zitat von B.Hauser Beitrag anzeigen
    Ich würde nicht gerade mit dem höchsten Commitment-Level *ALL anfangen, bei dem ich mir alles dicht mache, sondern mit dem niedersten UR (uncommitted read) oder *CHG. Ein unter Commit gesperrter Satz kann nur durch den nächsten Commit oder Rollback im gleichen Job wieder freigegeben werden, z.B. der RPG-Befehl UNLOCK oder die Erweiterung (N) ziehen nicht!

    ... "Schmalspur"-Journaling mit Gewährleistung der Transaktionssicherheit sollte man auf alle Fälle fahren.

    Birgitta
    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. Neue Möglichkeiten mit SQL auf i5 / iSeries / AS400
    By Fondue in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 28-04-06, 20:40
  2. Antworten: 0
    Letzter Beitrag: 14-06-05, 15:44
  3. Daten von Telefon-CD auf AS400 bringen
    By Schnichels in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 14-01-05, 16:07
  4. Remotezugriff auf AS400 über Internet
    By chera in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 12-08-03, 16:55
  5. Standleitung auf der as400 einrichten
    By delphix in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 09-01-02, 16:51

Berechtigungen

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