[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    Hatte ich das nicht eindeutig genug beschrieben?

    "Das Verschieben eines Objektes in eine andere Lib ändert nicht die Adresse des Objekts, sondern nur die Adresse seines Kontexts, also den Standort. Ebenso gilt dies für das Umbenennen eines Objekts, die Adresse bleibt gleich."

    Bei dem 1-Adress-System der AS/400 ist es unerheblich ob sich ein Objekt auf der Platte oder bereits im Speicher befindet.

    Viel wichtiger zu wissen ist:
    Die Adresse eines Programmes mit konstantem Namen wird bereits beim Start des Programmes ermittelt selbst wenn es nicht aufgerufen wird.
    Da kann dann selbst Stunden später bei einem Dauerläufer plötzlich eine alte Version aufgerufen werden.
    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

  2. #2
    Registriert seit
    May 2004
    Beiträge
    444
    Ich glaube das alles was hier steht und verstehe es auch nur meine Fakten sind einfach eindeutig, was dagegen spricht das die Variableninhalte erhalten bleiben

    Alle Daten wurden (schon Jahre) richtig geändert
    Programm ist umgewandelt
    Daten sind teilweise falsch und bei denen die falsch sind steht als Programm das Qxxxx im Journal als Update-Programm drin
    Alle vorherigen Updates vor der Umwandlung sind korrekt und alle die nach der Umwandlung das Programm gestartet haben und somit sowieso die neue Version hatten, sind auch korrekt.
    Daraus ergibt sich für mich, dass es Probleme mit der "Kopie" aus QRPLOBJ gab.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    Was immer da passiert ist:
    Es gibt keine Kopie!
    Sonst würde das Verschieben aktiver Programme nicht funktionieren (siehe Adresserklärung).
    Der Compiler greift auch nicht in laufende Jobs ein.
    Im Nachhinein ist eine Analyse halt nicht mehr möglich und ein Fall wie deiner ist mir noch nie untergekommen.

    Du kannst es gerne auch selber mit RNMOBJ und MOVOBJ eines aufgerufenen Programmes ausprobieren. Dieses kannst du sogar im Debugger anhalten.
    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
    May 2004
    Beiträge
    444
    Vielen Dank für die Hilfe und für die genauen Erläuterungen. Die Daten welche falsch waren habe ich korrigiert und seitdem ist auch kein weiterer Fehler aufgetreten. Die Fehler waren tatsächlich nur in der Übergangsphase als welche noch die alte Version im Stack hatten. Wie gesagt, auch die alte Version hat keine Fehler verursacht nur die "Kopie" während der Übergangsphase. Ich hab das übrigens auch verstanden, dass dies keine Kopie ist, allerdings verstehe ich nicht warum beim Objekt Qxxxx in Bibliothek QRPLOBJ der Typ *PGM steht. Für mich ist das eine Kopie des alten Programms und genau dieses Programm ist als Programm welches die Änderung in der Datei gemacht hat im Journal zu sehen

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    Ganz einfach:
    Du erstellst ein Programm mit dem Namen XXX und erhältst ein Objekt vom Typ *PGM.
    Das Objekt wird in einen eindeutigen Namen Qxxx umbenannt und die Elterneigenschaft in QRPLOBJ geändert. Da es, wiederholt, keine Kopie sondern das laufende Programm ist, behält es ja außer seinem Namen die vollkommene Identität als Programmobjekt.
    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

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.309
    Sieh dir mal mit DSPOBJD die Objektbeschreibung des Objekts Q6E43694A5 der Art *PGM in Bibliothek QRPLOBJ an. Wann wurde es erstellt?

  7. #7
    Registriert seit
    May 2004
    Beiträge
    444
    Hab ich bereits gemacht. Das Erstellungsdatum des Objekts was nach der Umwandlung nicht mehr existiert. Bestätigt nur dass das alte Programm in QRPLOBJ verschoben wurde. Ihr hängt Euch aktuell am Begriff Kopie auf. Was aber nicht mein Problem ist. Mir ist das egal ob er das in die QRPLOBJ kopiert oder verschiebt es sollte auf jeden Fall keine Probleme machen, was es aber gemacht hat. Dann stelle ich jetzt vielleicht die Frage nochmal. Kann es sein, dass das verschobene Programm nachdem es verschoben wurde Probleme mit Variableninhalten bekommt ? Denn anscheinend ist das so, sonst wären keine Probleme aufgetreten. Vor der Umwandlung gab es keine Probleme, alle die das Programm nach der Umwandlung neu aufgerufen haben, haben auch keine Probleme gemacht nur das verschobene Objekt in QRPLOBJ hat die Daten falsch upgedated.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    Ein Programm macht genau das, was da programmiert ist. Variablen sind festgelegt und Adressen können nicht geändert werden.
    Was im Nachhinein genau passiert ist, lässt sich da eben kaum nachvollziehen.
    Vielleicht ist das verschobene Programm eine Zwischenversion und nicht die tatsächliche vorherige korrekte Version gewesen.
    Dazu hättet du dir die tatsächliche Quellinformation des Objekts vorher sichern sollen.
    Ggf. hast du das Original ja noch auf einer Sicherung um es mit dem Objekt der QRPLOBJ vergleichen zu können. Dann kannst du ggf. feststellen, dass das Original u.U. älter als die verschobene Version ist.

    Ich denke wir können hier noch endlos diskutieren bevor herauskommt, dass du vielleicht doch einen Fehler gemacht hast.
    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
    May 2004
    Beiträge
    444
    Nein ist es nicht. Die Quelle hab ich auch vorher gesichert. Aber ist jetzt auch nicht weiter wichtig. Dieses Programm werde ich auf keinen Fall mehr im laufenden Betrieb umwandeln. Vielen Dank nochmals für die Hilfe. Übrigens die Änderung die ich reingemacht habe war lediglich eine Intialisierung einer Programmvariablen am Anfang des Programms mehr nicht. Vorher hat die Quelle zum Objekt gepasst und nachher, also jetzt, auch. Ich kann mich immer nur wiederholen. Vor der Kompilierung gab es keine Fehler und nach der Kompilierung auch nicht. Fehlerhafte Sätze hat nur das Qxx in QRPLOBJ verursacht, das konnte ich anhand des Journals fest stellen.

    Vielen lieben Dank für die genauen Erläuterungen, denn so genau bewusst war mir das mit QRPLOBJ auch nicht, bisher gab es nie Probleme wenn ich ein Programm im laufenden Betrieb kompiliert habe (das ist jetzt auch schon seit 1987). Aber anscheinend gibt es für alles das erste mal.

    Ich und Fehler ... lächerlich ;-)

  10. #10
    Registriert seit
    Jun 2001
    Beiträge
    1.979
    Es gibt Firmen, die mit dem Programmnamen Informationen aus Tabellen lesen.
    Typisch hierfür: Grenzwerte , Gültig ab Datum ...
    Wenn dazu der PGM Name aus der SDS genommen wird (Programm, nicht Modul!) läuft es auch falsch.
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    Mit der SDS hast du natürlich Recht, auf diese Idee bin ich nicht gekommen, da ich dies als unzuverlässig eben nicht verwende.
    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

Similar Threads

  1. Programm aus QRPLOBJ wird dem echten Programm vorgezogen
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 30-01-17, 13:36
  2. Antworten: 7
    Letzter Beitrag: 23-03-15, 17:21
  3. Antworten: 2
    Letzter Beitrag: 06-09-02, 07:59
  4. Fehler im C-Programm bei SQLALLOCENV
    By delphix in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 06-03-02, 15:07
  5. PC-Programm
    By Stefan_R in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 03-07-01, 07:59

Berechtigungen

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