[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.120

    Programmstatistik "Zuletzt benutzt am" kann nicht stimmen

    Hallo liebe Kolleginnen und Kollegen,

    ich habe hier ein seltsames Phänomen: Ein Serviceprogramm, das genau eine Procedure exportiert, zeigt dauernd an, dass es benutzt wurde, obwohl es nicht aufgerufen worden sein kann.

    Bisher haben wir uns immer auf die Objektstatistiken verlassen. Man kann ja mit DSPOBJD die Attribute eines Programmobjektes auslesen und erkennen, wann das Objekt zuletzt benutzt wurde. (Wir gehen davon aus, dass die Benutzung bei einem Programm bedeutet, dass es aufgerufen wurde.)

    Code:
    Änderungs-/Anwendungsinformation:                               Datum/Uhrzeit der Änderung . . . . . :   19.07.21  17:07:10 
      Nutzungsdaten erfasst  . . . . . . . :   J                  
      Zuletzt benutzt am . . . . . . . . . :   20.07.21           
      Anzahl der verwendeten Tage  . . . . :   2                  
        Rücksetzungsdatum  . . . . . . . . :
    Bei dem Serviceprogramm ist es so, dass wir das Programm kompilieren können. Danach zeigt die letzte Benutzung auch nichts an. Keine Datum / Keine Anzahl der verwendeten Tage.
    Aber nach ein paar Minuten steht plötzlich ein Wert drin. Das Programm kann aber definitiv nicht aufgerufen worden sein!

    Interpretieren wir die Werte falsch oder gibt es außer dem Aufrufen einer Procedure noch andere Aktionen, die die Benutzungsdaten aktualisieren?
    In der IBM Doku habe ich so etwas gefunden wie "Die Benutzungsdaten eines Serviceprogramms werden aktualisiert, wenn das Programm aktiviert wird".
    Was immer mit aktiviert gemeint sein mag ...

    Dieter

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... aktiviert meint, dass es geladen wurde. Das kann bereits dann erfolgen, wenn ein anderes PGM oder SRVPGM aufgerufen wird, das dieses SRVPGM gebunden hat.

    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/

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Vielen Dank für die Antwort.

    Das würde das Verhalten erklären. Ist aber sehr unschön. Eigentlich interessiert mich ja nicht, dass irgendein Programm den Prototype des Serviceprogramms eingebunden hat. Ich will ja wissen, ob es tatsächlich benutzt wurde, also ob irgendeine Procedure des Serviceprogramms aufgerufen wurde.

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Nicht böse sein, aber bei uns läuft das unter Designfehler!
    Warum sollte ich ein Servicepgm in einen Ablauf binden, wenn es nicht gebraucht wird?
    Nach dem motto

    "viele wenig ergeben ein viel"

    läd die Kiste lauter 'Exotische' Funktionen, die sie nicht braucht.
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von Robi Beitrag anzeigen
    Nicht böse sein, aber bei uns läuft das unter Designfehler!
    Warum sollte ich ein Servicepgm in einen Ablauf binden, wenn es nicht gebraucht wird?
    Nach dem motto

    "viele wenig ergeben ein viel"

    läd die Kiste lauter 'Exotische' Funktionen, die sie nicht braucht.
    ... es werden prinzipiell nur Module und SRVPGMs gebunden, die auch benutzt werden könnten. Bei der Aktivierung ist der default, dass beim Aufruf eines Programms alles geladen wird, was auch benutzt werden könnte, was auch meistens Sinn macht. Beim CRTPGM lässt sich beim Parameter BNDSRVPGM einstellen, dass spät aktiviert wird (*DEFER), d.h. unmittelbar bei der ersten Referenzierung. Geht wohl auch im BNDDIR, was ich seit Jahrzehnten nicht mehr verwende. Noch flexibler ist man, wenn man selber per API aktiviert, dann wird nix gebunden und nix automatisch aktiviert, d.h., dass man zur LAufzeit entscheidet, was gebunden werden soll.

    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/

  6. #6
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Hallo Robi

    Ich bin nicht böse, glaube aber nicht, dass es ein Designfehler ist. Es geht im konkreten Fall um ein Serviceprogramm, das Daten löscht. In dem aufrufenden Programm hat man die Möglichkeit, Daten anzuzeigen oder zu löschen. Nur wenn ich tatsächlich löschen auswähle, wird das Serviceprogramm aufgerufen. Aber da ich natürlich jederzeit löschen auswählen könnte, muss das Programm (der Prototype) eingebunden sein.

  7. #7
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Zitat Zitat von BenderD Beitrag anzeigen
    Beim CRTPGM lässt sich beim Parameter BNDSRVPGM einstellen, dass spät aktiviert wird (*DEFER), d.h. unmittelbar bei der ersten Referenzierung. Geht wohl auch im BNDDIR, was ich seit Jahrzehnten nicht mehr verwende. Noch flexibler ist man, wenn man selber per API aktiviert, dann wird nix gebunden und nix automatisch aktiviert, d.h., dass man zur LAufzeit entscheidet, was gebunden werden soll.

    D*B
    Da muss ich mal ein bisschen nachlesen...

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Sobald ein (automatischer) Prozedurpointer gesetzt wird, erfolgt die Zuweisung der Benutzungsinfo.
    Das ist wie beim impliziten Datei-Open. Lesen muss ich die ja dann nicht.
    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
    Mar 2002
    Beiträge
    5.287
    ... man beachte den Bundes Nachrichten Dienst: Seht euch mal den addbnddire an, der hat eine Einstellung für jedes Objekt, ob sofort oder erst bei tatsächlicher Verwendung aktiviert wird. CRTPGM beim Parameter BNDSRVPGM ebenso.

    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/

  10. #10
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Vielen Dank an alle, insbesondere an Dieter Bender.

    Den Parameter für *DEFER heben wir gefunden. Wir überlegen noch, ob das irgendwelche Nachteile haben kann, wenn wir die Aktivierung "verzögern". Laut IBM Hilfetext soll das ja sogar positive Auswirkungen auf die Performance haben.
    Nachteile fallen mir da nicht ein. Deshalb wundert es mich, dass *DEFER nicht der Standardwert ist.

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    *DEFER ist deshalb nicht Standard, weil er erst mit Release 6.1 eingeführt wurde.
    Zuvor wurde immer alles mit *IMMED aktiviert.
    Ansonsten gibt es keine Nachteile, im Gegenteil, anstatt alles beim ersten Aufruf zu aktivieren, wird ein Service-Programm erst dann gesucht und aktiviert, wenn der erste Aufruf einer Prozedur aus dem Service-Programm erfolgt. Damit kann man u.U. Zeit und Speicher sparen.
    Die Zeitunterschiede (auch bei vielen Service-Programmen) liegen allerdings im Nano-Sekundenbereich.
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  12. #12
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    unsere 'design vorgaben' stammen aus frühen 5.4 Zeiten

    da wurde das 'löschen (in deinem Fall) gecalled wenn das Programm i.d.R zum ansehen und bearbeiten ist.
    Ging bei uns immer um Speicherplatz, nie um die letzte nano Sekunde. In dialog Pgmmen ist ja eh der Anwender das langsamste ...
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

Similar Threads

  1. Kann keine Beiträge erstellen in zB. "System i Hauptforum"
    By lch in forum Intern - Hilfe - Feedback - Tests-Forum
    Antworten: 10
    Letzter Beitrag: 15-02-21, 11:06
  2. UIM-Menü bringt Fehler "Funktionstaste nicht zulässig"
    By RobertSchneider in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-07-20, 16:02
  3. "Achtung"-Lampe lässt sich nicht löschen.. ?
    By hel400 in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 25-05-17, 23:57
  4. MinusField falsche Darstellung "ü" statt "-"
    By Edi in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 07-11-14, 07:52
  5. Cobol/400 - "Fett", "Unterstreichen" als HEX-Wert
    By RLurati in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 05-08-14, 09:10

Berechtigungen

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