[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2003
    Beiträge
    118

    Problem bei gelocktem SQLRPGLE-Programm

    Hallo,

    bei uns ist folgendes Problem bei einem RPGLE-Programm mit embedded-SQL aufgetreten:

    Wenn das Programm-Objekt (!) durch die Datensicherung gelockt ist, dann erscheint beim Aufrufen des Programms die Informationsmeldung SQL7917 - Zugriffsplan nicht aktualisiert im Joblog und der Job "hängt" für einige Minuten.

    Kann mir jemand erklären, was an dem Program-Objekt aktualisiert werden soll?
    Kann man dies verhindern, da dieses Problem immer bei der Datensicherung (also Nachts) auftritt und dann unsere Bereitschaft raugeklingelt wird.

    Vielen Dank für eure Hilfe.

    Jo

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    Beim Erstellen eines SQL-Programmes wird ein SQLPKG in das Objekt eingebettet.
    Bereits beim CRT-Befehl wird auch ein Zugriffsplan mit im Objekt gespeichert, so dass SQL's (meistens) dann schneller ausgeführt werden sollen.
    Beim Start eines Programmes wird geprüft, inwieweit dieser Zugriffsplan noch gültig ist und ggf. aktualisiert.

    Verhindern läßt sich da nix, ausser während der Sicherung bestimmte Funktionen zu sperren.

    Anmerkung: Programmobjekte sollten in einer eigenen Lib stehen, die nicht jeden Tag mit gesichert werden müsste sondern nur bei tatsächlichen Änderungen.
    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
    Jan 2003
    Beiträge
    118
    Hallo Fuerchau,

    vielen Dank für deine Erläuterungen.

    Gibt es keine Möglichkeit dem Programm zu sagen, dass der Zugriffsplan NICHT aktualisiert werden sollen. Ansonsten ist dies für mich eigentlich ein Grund kein SQL mehr zu verwenden.

    Die Programmobjekte stehen bereits in einer extra Bibliothek, aber wir müssen sie trotzdem sichern. Und da wir 24 h arbeiten, kann ich auch nicht die Programme während der Sicherung sperren.

    Vielleicht fällt sonst noch jemanden etwas dazu ein.

    Jo

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    Keine Chance !
    Sobald SQL im Spiel ist, gilt oben gesagtes. Dies sollte aber kein Grund sein auf SQL zu verzichten sondern eher dazu führen das Sicherungskonzept zu prüfen (SAVACT, SAVACTWAIT).
    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
    Hallo,

    im SQL Programm ist ein package enthalten, das den sogenannten Access Plan enthält. Nun gibt es unstrittig Ereignisse, die einen rebuild erfordern (z.B.: löschen von Indexen), da die AS400 keinen Recompile benötigt, macht sie das automatisch beim Aufruf des Programmes und benötigt in dem Moment Schreibzugriff auf das Package (bei euch = Programm). Soweit so gut, erklärt aber nicht das, was bei euch passiert.
    Ausser der oben geschilderten Zwangssituation (löschen Zugriffspfad) gibt es auch Ereignisse, die einen rebuild sinnvoll machen (z.B.: hinzufügen Zugriffspfad, oder starke Änderung von Datenmengen - letzteres kann auch schleichend erfolgen). Solche Ereignisse sollten allerdings außerordentlich selten sein und sich dann mit noch geringerer Wahrscheinlichkeit mit der Sicherung treffen.
    Ich würde hier in jedem Fall Defekt Meldung empfehlen und mit soviel Druck wie möglich forcieren. Desweiteren empfiehlt sich das Problem in die news:comp.sys.ibm.as400.misc zu stellen, da mischt z.B. Kent Milligan mit. Verdächtig sind mir hier auch längere Wartezeiten als der in der class angegebene Wert (QINTER üblich 30 sec.) und wenn das Programm das Objekt nicht bekommt, würde ich eine warning ohne Folgen erwarten, wenn der alte access plan noch geht.
    Könntest du nochmal genauer darstellen, warum das zum fall für die Hotline wird??? sind es die Wartezeiten?? eine warnung im Joblog merkt ein Benutzer doch nicht???

    mfg

    Dieter Bender

    PS: Eine Suche mit eurer SQL Meldung fördert eine Reihe von APARs zu Tage.

    Zitat Zitat von jo400
    Hallo,

    bei uns ist folgendes Problem bei einem RPGLE-Programm mit embedded-SQL aufgetreten:

    Wenn das Programm-Objekt (!) durch die Datensicherung gelockt ist, dann erscheint beim Aufrufen des Programms die Informationsmeldung SQL7917 - Zugriffsplan nicht aktualisiert im Joblog und der Job "hängt" für einige Minuten.

    Kann mir jemand erklären, was an dem Program-Objekt aktualisiert werden soll?
    Kann man dies verhindern, da dieses Problem immer bei der Datensicherung (also Nachts) auftritt und dann unsere Bereitschaft raugeklingelt wird.

    Vielen Dank für eure Hilfe.

    Jo
    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
    Mar 2002
    Beiträge
    5.287
    Hallo,

    lässt sich (zumindest ab V5R1) in der QAQQINI abstellen (REOPTIMIZE_ACCESS_PLAN auf *required setzen); Verfahren der Nutzung der QAQQINI ist in Query Optimization beschrieben.

    mfg

    Dieter Bender

    Bei Datenbankänderungen kann man über einen Eintrag von *YES eine Aktualisierung beim ersten Aufruf erzwingen.

    Zitat Zitat von jo400
    Hallo Fuerchau,

    vielen Dank für deine Erläuterungen.

    Gibt es keine Möglichkeit dem Programm zu sagen, dass der Zugriffsplan NICHT aktualisiert werden sollen. Ansonsten ist dies für mich eigentlich ein Grund kein SQL mehr zu verwenden.

    Die Programmobjekte stehen bereits in einer extra Bibliothek, aber wir müssen sie trotzdem sichern. Und da wir 24 h arbeiten, kann ich auch nicht die Programme während der Sicherung sperren.

    Vielleicht fällt sonst noch jemanden etwas dazu ein.

    Jo
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Jan 2003
    Beiträge
    118
    Hallo Dieter,

    vielen Dank für deine Antworten.

    Ich versuche deine Fragen zu beantworten:

    - Ja er verwendet den Standardwert von 30 Sekunden Wartezeit, aber er versucht mehrere Zugriffspfade abzuändern; deshalb ist die Wartezeit insgesamt länger.

    - Die Benutzer rufen nachts an wegen der langen Antwortzeiten von mehreren Minuten (nachts sind die "gefühlten" Antwortzeiten aber wohl etwas länger).

    - Was mich halt verwundert ist, dass er regelmässig (bei jedem Aufruf) versucht die Zugriffspfade zu ändern und nicht nur wenn es notwendig ist (sooft ändern wir unsere Zugriffspfade (LF) nun auch nicht).

    - Ich werde mich auf jeden Fall mit IBM in Verbindung setzen und die fehlenden zwei/drei PTF's installieren. Bevor ich die QAQQINI bearbeite, mache ich mich damit erstmal schlau.

    - Was meinst du mit Datenbankänderungen auf *YES stellen? Bei welchem Befehl/Parameter kann ich dies einsetzen?

    Vielen Dank.

    Jo

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo Jo,

    - sieht nach defect problem aus, die Konstellation sollte sehr sehr selten sein. Habt ihr einen aktuellen Group PTF Stand für die Datenbank (je nach Release WRKPTFGRP oder DSPDTAARA SF99501 oder SF99t02) ??? ansonsten sofort den neuesten einspielen.

    Zitat Zitat von jo400

    - Was meinst du mit Datenbankänderungen auf *YES stellen? Bei welchem Befehl/Parameter kann ich dies einsetzen?

    Vielen Dank.

    Jo
    Den REOPTIMIZE_ACCESS_PLAN in der QAQQINI für eine Programmierer auf *YES stellen und die Programme ausführen, dann passiert das tagsüber kontrolliert; die Anwender fahren immer mit *NO.

    mfg

    Dieter Bender
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Jan 2003
    Beiträge
    118
    Halllo Diter,

    wir haben V5R2 und die Datenbank-Gruppenptf's 15 (also fast aktuell).
    Ich werde mir aber umgehend die aktuellsten Gruppenptf's besorgen.

    Das mit der QAQQINI und dem *ONLY_REQUIRED/*YES habe ich jetzt auch verstanden.

    Vielen Dank.

    Jo

Similar Threads

  1. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. Problem mit Steuerzeichen in Datenbank?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-10-06, 10:07
  3. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39
  4. *zoned bei SQLRPGLE Programm
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 12-07-05, 13:04
  5. Antworten: 7
    Letzter Beitrag: 23-07-04, 07:29

Berechtigungen

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