[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2

Thema: QSYGETPH API

  1. #13
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Das API wird natürlich auch vom System selber benutzt.
    Hierzu wird im System eine Pointer-Liste auf Programmobjekte bei Systeminstallationen und PTF-Updates verwaltet, die sog. QINSEPT.
    Wenn man mit C/C++ programmiert, kann man auf diese Liste zugreifen und sich somit die Zeiten zur Initialisierung des Systempointers sparen.
    Über die QINSEPT wird auch z.B. von den HLL-Runtimes (RPG/LE, COBOL, usw.) auf die DB-Routinen zugegriffen.
    Man kann sich also darauf verlassen, wenn man einen CALL QInsept(IndexOfQCMDEXC) durchführt, dass dieser auch klappt.

    Die obige Meldung "Es wurde versucht, auf ein nicht mehr vorhandenes Objekt oder Teile des Objekts Bezug zu nehmen." deutet eben auf den fehlenden/korrupten Pointer des QSYGETPH hin womit dann eben die Berechtigung aus DDM nicht mehr geprüft werden kann und somit nicht von Erfolg gekrönt wird.

    Eine Reparatur mit Bordmitteln ist mir nicht bekannt.
    Man kann auch kein MI/C-Programm zur Korrektur der QINSEPT mehr schreiben, da das Objekt über die System-Domäne geschützt ist.

    Der Link deutet ja genau auf das Problem des "AiUpcallProgram" hin.
    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. #14
    Registriert seit
    Nov 2007
    Beiträge
    8
    Danke Euch!

    Es sieht wirklich danach aus, dass wir eine Neu-Installation machen müssen.

  3. #15
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Eine Reparatur mit Bordmitteln ist mir nicht bekannt.
    ... man kann da wohl schon noch mit patch drin rummalen, aber das ist dann auch die Lizenz dazu die Maschine völlig abzuschießen...

    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/

  4. #16
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Das Problem der QINSEPT ist die fehlende Doku, auf welchem Eintrag denn welches Programm steckt.
    Vielleicht gibt es in der QSYSINC (Bibliothek zum Installieren) noch eine Definition.
    Dann könnte man (wie im Link beschrieben) wohl per SST den kaputten Pointer wieder auf das Programm setzen.
    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. #17
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... die Reihenfolge ist bei passendem Release wohl immer dieselbe und man kann die Tabelle wohl dumpen, da gibt es irgendwo eine Beschreibung. Die pointer müssten dann angepasst werden auf die konkrete Adresse auf der Büchse. Das ist aber alles ohne Netz und doppelten Boden - das würde ich allenfalls auf einer Museumsbüchse von Holger oder Gregor probieren. Ich habe in einem meiner vorherigen Leben einmal mit SST in der Plattenkonfig rumgemalt - das war aber eine Testbüchse und das Stresslevel gleichwohl immens hoch...

    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. #18
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Als ich noch mit V2R1 gearbeitet hatte und meine ersten MI-Progrämmchen schrieb, habe ich mir die QINSEPT auch zerhauen (da gabs noch keinen Schutz), da ich einen Pointer bewusst umgebogen hatte. Durch einen Fehler konnte ich allerdings das Original nicht mehr einstellen, so dass hier auch eine Neuinstallation nötig wurde (ca. 1992;-)).
    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

  7. #19
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Mit DMPSYSOBJ OBJ(QINSEPT) CONTEXT(QSYS) kann man den Inhalt der SEPT ansehen und mit DMPSYSOBJ OBJ(QSYGETPH) CONTEXT(QSYS) OBJTYPE(*PGM) bekommt man die Adresse des Programms QSYGETPH. Mit Hilfe von STRSST Display/Alter/Dump kann man die linken 5 Bytes (!) der Adresse des Programms an die richtige Stelle in die SEPT eintragen. Einfach mal auf dem anderen System nachsehen (im Inhalt der SEPT nach QSYGETPH suchen und die Stelle in der SEPT ermitteln) und anschließend auf dem betroffenen System machen (Vorsicht: Die Adressen der beiden Systeme nicht durcheinanderbringen!) Anschließend mit DMPSYSOBJ die SEPT prüfen...

  8. #20
    Registriert seit
    Aug 2006
    Beiträge
    2.074
    Zitat Zitat von BenderD Beitrag anzeigen
    - das würde ich allenfalls auf einer Museumsbüchse von Holger oder Gregor probieren.
    D*B
    Hallo!!!
    Du kannst von Glück sagen das Wochende ist und ich gut gelaunt bin..
    Meine armen Kisten.
    Außerdem habe ich nur eine mit V6R1 als Museumstück. Ist mir zu neu......

    Hoffe der Kollege hat Glück und bekommt seine Mühle wieder ans Laufen.

    Muß im Sommer wenn ich meinen neuen Keller habe sehen das ich meine D10 mit V2R3 wieder ans Rennen bekomme.

    GG 4338

  9. #21
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von KingofKning Beitrag anzeigen
    Hallo!!!
    Du kannst von Glück sagen das Wochende ist und ich gut gelaunt bin..
    Meine armen Kisten.
    Außerdem habe ich nur eine mit V6R1 als Museumstück. Ist mir zu neu......

    Hoffe der Kollege hat Glück und bekommt seine Mühle wieder ans Laufen.

    Muß im Sommer wenn ich meinen neuen Keller habe sehen das ich meine D10 mit V2R3 wieder ans Rennen bekomme.

    GG 4338
    ... könntest ja wenigstens mal Danke sagen, dass ich was für Deinen Blutdruck getan habe...
    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. #22
    Registriert seit
    Aug 2009
    Beiträge
    121
    Um die System Entry Point Table (QINSEPT) neu aufzubauen, reicht normalerweise ein "Abbreviated Install". Dabei wird nicht das gesamte Betriebssystem ersetzt, sondern es werden nur fehlende Teile wiederhergestellt. Dazu macht man ein manuelles IPL zum ersten Bild und wählt dann aus: 2 = Install the operating system -> 2 = Change install options -> Option 2 = Do not restore programs or language options. Damit wird eigentlich nichts ersetzt, was nicht beschädigt ist, aber die System Entry Point Table wird neu aufgebaut (https://www.ibm.com/support/knowledg...ctinstlopt.htm). Das hilft natürlich nur dann, wenn das Programm QSYGETPH in der Bibliothek QSYS gefunden werden kann.

    Mit freundlichen Grüßen,
    Christian Bartels.

Berechtigungen

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