[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.379
    Zitat Zitat von Domeus Beitrag anzeigen
    Hallo.

    Wir haben in einem Programm eine DO Schleife mit einem read. Nun kommt es hier öfters mal vor, dass einzelne Sätze ein LOCK haben weil da gerade ein Benutzer mit arbeitet. Das ist ok und normal und wir haben nach dem Read eingebaut, dass er dann automatisch auf den nächsten Satz ein setll macht und dann mit dem read weiter.

    Allerdings bleibt es bei dem read im Falle eines LOCKs ziemlich lange stehen und wartet, was hier nicht nötig ist. Er könnte dann theoretisch direkt weiter. Kann man irgendwie diese Wartezeit einstellen oder ganz entfernen (natürlich nur für dieses eine read - nicht systemweit)?

    Gruß
    Sebastian
    ... rekord löffel exzem kann das nicht. Nimm SQL und Locklevel read commited, dann werden gesperrte Sätze überlesen.

    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
    Jan 2019
    Beiträge
    45
    Guten Morgen und danke schon mal für eure Antworten.

    Die ganze Problematik betrifft unser Lagersystem. Hier haben wir alles unterteilt in LAGER, REIHE, FELD, HOEHE. Diese Werte sind blöderweise 3A (warum? keine Ahnung - Uralt). Und die Daten werden auch noch rechtsbündig geschrieben. Heisst die Werte für die Lagerorte sehen dann z.B. so aus:

    LAGER ' 60'
    REIHE '100'
    FELD ' 15'
    HOEHE ' 50'

    Nun liest diese Programm einen Lagerort nach dem anderen durch und prüft hier bestimmte Werte und ändert diese unter Umständen. Sollte ein Satz gerade gesperrt sein, dann nimmt er den Wert für HOEHE, wandelt diesen in DEC 3. Addiert dann eins drauf 50 -> 51 und schriebt ihn dann mit EVALR und %char() zurück in die HOEHE Variable und macht damit ein setll. Dadurch wird beim nächsten Lagerort positioniert und dann geht das weiter. Falls HOEHE bei 999 ankommt dann wird diese auf ' 1' gesetzt und dafür dann FELD um eins erhöht. Und so arbeitet sich das Programm durch das ganze Lager.

    Ist halt alles ziemlich alt und man würde es wahrscheinlich heuet anders gestalten, aber an der Grundlogik können wir da nichts mehr ändern.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.752
    Dann kannst du vor Aufruf des Programmes, über ein CLP, nur für dieses einen OVRDBF machen um die Satzwartezeit z.B. auf 5 Sekunden zu reduzieren.
    Beim Lesen würde ich die N-Funktion (NoLock) benutzen wie oben geschrieben, nur beim erforderlichen Chain/Update würde dann die verkürzte Wartezeit zuschlagen.
    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
    Jan 2019
    Beiträge
    45
    Alles klar. Das hilft mir weiter. Vielen Dank!

Similar Threads

  1. Spool mit Lock versehen
    By ILEMax in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 11-12-18, 09:53
  2. IFS Objekt kopieren | Lock
    By Power8 in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 12-09-17, 13:23
  3. Lock auf Eingabemaske nach call von RPGLE auf CL
    By DeadlyPunch in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 25-02-09, 14:33
  4. Lock auf IFS Objekte
    By kruxelwuz in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 18-02-05, 08:16
  5. Lock auf Outq
    By Stefan_R in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 19-11-01, 16:07

Berechtigungen

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