[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    163

    Welches Programm sperrt Satz

    Hallo zusammen,

    wir haben ein Problem mit einer Satzsperre:

    Sporadisch tritt der Fehler auf, dass ein Programm einen gesperrten Satz lesen will. Ich habe bisher keine Möglichkeit gefunden, festzustellen, welches Programm die Sperre stehen lässt. Der Aufrufstapel des sperrenden Jobs hilft nicht weiter, da viele Programme mit *INLR = *OFF verlassen werden, so dass das sperrende Programm möglicherweise gar nicht mehr im Aufrufstapel steht.

    Vielen Dank im Voraus

    Hubert

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Da hast du tatsächlich schlechte Karten.
    Wenn du nicht weißt, welches Programm diese Datei geöffnet hat, kann dir das System da leider auch nicht helfen.

    Problematisch sind da vor allem Anwendungen, die mit SHARE(*YES) die Datei ggf. mehrfach öffnen.
    Da hilft tatsächlich nur, die Anwendung explizit zu analysieren.
    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
    Mar 2002
    Beiträge
    5.287
    wenn die Sperre von einem update herrührt, dann kann man das sicher und relativ einfach durch Journalisierung herausfinden.

    D*B

    Zitat Zitat von Hubert Beitrag anzeigen
    Hallo zusammen,

    wir haben ein Problem mit einer Satzsperre:

    Sporadisch tritt der Fehler auf, dass ein Programm einen gesperrten Satz lesen will. Ich habe bisher keine Möglichkeit gefunden, festzustellen, welches Programm die Sperre stehen lässt. Der Aufrufstapel des sperrenden Jobs hilft nicht weiter, da viele Programme mit *INLR = *OFF verlassen werden, so dass das sperrende Programm möglicherweise gar nicht mehr im Aufrufstapel steht.

    Vielen Dank im Voraus

    Hubert
    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
    Feb 2001
    Beiträge
    20.236
    @Dieter
    Wie wird denn beim Lesen eine Satzsperre journalisiert ?
    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

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... deshalb habe ich auch geschrieben: wenn die Sperre von einem update herrührt...

    Zitat Zitat von Fuerchau Beitrag anzeigen
    @Dieter
    Wie wird denn beim Lesen eine Satzsperre journalisiert ?
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Aug 2003
    Beiträge
    163
    Tja, dann bleibt wohl doch nur Sysyphus - Arbeit.


    Vielen Dank

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Nunja, Updatesperren bleiben ja nur unter Commit/Control ohne Commit bestehen, aber ohne Commit/Control gibt's ja nach Update keine Satzsperre mehr.

    Da wird ja dann (da die Anwendung das ja meist nicht beherrscht ohne Redesign) das Problem nur verschärft.
    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

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    @Hubert
    Das Problem bei Share-Open ist auch, dass das sperrende Programm mit *INLR=*ON auch deaktiviert werden kann und die Sperre trotzdem bestehen bleibt.

    Zur Analyse:
    Häufig bleiben Sperren bestehen, wenn nach dem Lesen mit Sperre eine Bedingung dazu führt, dass eben kein Update erfolgt um die Sperre aufzuheben.

    Solche Programme hatte ich da auch schon zu suchen.
    Ich habe mir aber nur die Mühe gemacht, zu prüfen ob der Satz bei Verlassen des Pgm's tatsächlich noch benötigt wird und dann einfach einen UNLCK auf die Datei vor dem Programmende eingebaut.
    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

  9. #9
    Registriert seit
    Aug 2004
    Beiträge
    923
    Tritt denn das Problem immer an der gleichen Stelle auf?
    Ich meine, hat immer das gleiche Programm an der gleichen Stelle das Problem?

    Dann würde ich gar net gross suchen nach dem Fehler, sondern einfach mal ein WRKOBJLCK nach Liste (bzw. Call nach CLP was sowas macht) direkt davor einbauen und dann einfach abwarten bis das Problem nochmal auftaucht.

    Dann die Listen sichten und hoffentlich den Übeltäter zu finden.

    k.

  10. #10
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Wir haben einen allg. gültigen Trigger, den wir in einem solchen Fall anhängen. Er schreibt den Key und den Pgmstack in eine Datei mit 50 Feldern.
    Bisher haben wir nur update delete und insert abgedeckt.

    aber das hat uns schon oft geholfen, zu finden warum da mal ein Satz verschwindet oder sich ab und zu (ohne grund) verändert.

    Da der Trigger auch bei read ausgelöst wird ...
    Je nach dem wieviel trafic auf der Datei ist, wird es zwar ne Weile recht langsam, aber wenn du evtl sogar den Satz spezifizieren kannst ....


    Robi

  11. #11
    Registriert seit
    Apr 2005
    Beiträge
    385
    Hallo,

    also wir bauen hier immer am Ende des CL ein RCLRSC ein.
    Das hat den Vorteil, das das Problem nicht mehr auftreten kann.

    Ich würde es in alle CL's einbauen, kostet ja weder Performance oder sowas.

  12. #12
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    davon würde ich dringend abraten:
    - ist für ILE wirkungslos
    - hat für OPM Nebenwirkungen, die vielleicht nicht gewollt sind
    - kann sehr wohl nicht zu vernachlässigende Performance Nachteile haben

    D*B

    Zitat Zitat von ExAzubi Beitrag anzeigen
    Hallo,

    also wir bauen hier immer am Ende des CL ein RCLRSC ein.
    Das hat den Vorteil, das das Problem nicht mehr auftreten kann.

    Ich würde es in alle CL's einbauen, kostet ja weder Performance oder sowas.
    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. Programm auf "ferner" AS400 ausführen.
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 13-05-09, 19:50
  2. Zu einem Programm die Service-Attribute ändern!
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 18-01-07, 15:06
  3. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  4. SQL im Programm
    By steven_r in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 19-10-06, 09:12

Berechtigungen

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