[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2
  1. #13
    Registriert seit
    Sep 2010
    Beiträge
    14
    Zitat Zitat von Pikachu Beitrag anzeigen
    Ich würds umgekehrt machen: Die Adresse des Programmobjekts in die SEPT kopieren.
    Ist das denn die genaue Adresse für dieses Objekt?

    Dann würd ich das mal ausprobieren...
    AS400-Newbie... :))

  2. #14
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... nur so am Rande, wenn du dich da vermalst, kannst du die Lage übelst verschlimmbessern. Der dokumentierte Weg ist: Fehlermeldung und auf PTF warten.

    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. #15
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Bei V5R2 wirds da wohl nichts mehr geben.
    Neu/Reparaturinstallation ist wohl der einzige Weg.
    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. #16
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Ein DMPOBJ OBJ(QSYS/QWCCCRVC) OBJTYPE(*PGM) erstellt eine Spooldatei, in der die Adresse dieses Programmobjekts steht (links oben in der Spooldatei).

    Ein DMPSYSOBJ OBJ(QINSEPT) CONTEXT(QSYS) TYPE(19) SUBTYPE(C3) erstellt eine Spooldatei, in der die Positionen der verschiedenen Programmobjekte in der SEPT stehen.

    ...
    000530 SYP 02 01 QWCCCRVC 04 01 QSYS
    ...

    Bei euch steht da vermutlich "Objekt zerstört".

    Per STRSST > "Start a service tool" > "Display/Alter/Dump" > "Display/Alter storage" > "Machine Interface (MI) object" > "Space (19)" > "Find by object name and context name" kann der Inhalt des Objekts:

    Object: (19) - Space / QINSEPT / C3
    Context: QSYS / 01

    unter "Hexadecimal, alter capable" angezeigt werden.

    Hier sollte in der Zeile 1530 (!) an den Stellen XXXXXXXX XX die ersten 5 Bytes der Adresse (siehe oben) des Programmobjekts QWCCCRVC stehen.

    1530 00048000 00000000 XXXXXXXX XX00023F

    Überprüft das mal auf einem anderen System von euch (DMPOBJ um die Adresse zu ermitteln und STRSST um in die SEPT an Position 1530 zu sehen)!

    Mittels "F11=Alter storage" können die Stellen XXXXXXXX XX geändert werden. (Vor dem Ändern unbedingt den vorherigen Inhalt notieren !!!)

    Alle Angaben ohne Gewähr !!!
    Seid vorsichtig beim Ändern !!!

  5. #17
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Auch wenn ihr mir nicht glauben wollt, aber Pointer unterliegen da einem besonderen Schutz.
    Ändert man einen Pointer mit Daten, wird der Pointer zerstört und als Daten interpretiert.

    Dies ist seit V5R1 so, damit man nicht mal eben aus Daten einen Pointer machen kann und somit Berechtigungen umgehen könnte oder sonstige Zugriffe erhält.
    Im MI gibt es daher auch unterschiedliche Befehle:
    CPYBLA -> Copy bytes
    CPYBWP -> Copy with Pointer
    Beim CPYBLA werden alle Bytes kopiert, ggf. enthaltene Pointer werden zerstört und sind nicht mehr als Pointer verwendbar.

    Ich denke nicht, dass SST die Daten als Pointer erkennt und damit beim Überschreiben auch als Pointer, vor allem Systempointer, setzt.

    Ich glaube auch nicht, dass die SEPT hier zerstört ist, da es beim direkten Aufruf mit der SEPT-Adresse sonst einen "Illegal Pointer"-Fehler geben würde.
    Da aber das Objekt benannt wurde ist dieses irgendwie tatsächlich kaputt.
    Das kann man zwar aus einem anderen System kopieren, wobei allerdings eine neue Adresse (Pointer) entsteht.

    Meine Empfehlung, auch wenn's schwer fällt: Reparaturinstallation!
    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. #18
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Auch wenn ihr mir nicht glauben wollt, aber Pointer unterliegen da einem besonderen Schutz.
    Ändert man einen Pointer mit Daten, wird der Pointer zerstört und als Daten interpretiert.
    Hier steht was Interessantes über diese MI-Zeiger. Demnach sind in der SEPT komplette MI-Zeiger drin, mit allen ihren 16 Bytes. Und durch Ändern des Segmentteils des Zeigers werden die ersten 8 Bytes, die den Typ des Zeigers enthalten, ja nicht gelöscht.

  7. #19
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das mag ja alles so stimmen, aber nochmal, wenn du einen Pointer als Zeichen (16 Bytes) kopierst ist das Ziel kein Pointer mehr auch wenn ja alles bitweise identisch ist.
    Ich denke auch das verändern einzelner Bytes zerstört den Pointer.

    Wenn ich mal Zeit habe, probier ich das aus.
    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. #20
    Registriert seit
    Aug 2009
    Beiträge
    121
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Das mag ja alles so stimmen, aber nochmal, wenn du einen Pointer als Zeichen (16 Bytes) kopierst ist das Ziel kein Pointer mehr auch wenn ja alles bitweise identisch ist.
    Ich denke auch das verändern einzelner Bytes zerstört den Pointer.
    Das gilt wohl, wenn man per Programm auf Adressen ändert. Wenn man den Pointer aber über SST ändert, hat man das selber in der Hand: Neben den Spalten mit den Daten gibt es eine Spalte "Tags active", und in der steht ein "T", wenn es sich um einen gültigen System Pointer oder Space Pointer handelt. Wenn man hier (z.B. in der SEPT) eine Adresse mit einem neuen Wert überschreibt und das "T" nicht rausnimmt, bleibt der Pointer gültig. Da in der SEPT sogenannte "System Pointer" stehen, also Pointer, die immer auf eine Segment Boundary verweisen(letzte drei Bytes = X'000000'), werden die beiden letzten Bytes für Zusatzinformationen verwendet: Das vorletzte Byte ist der Objekttyp (X'02' für Programm), das letzte Byte ist die Public Authority. Deshalb dürfen die beim der Reparatur nicht überschrieben werden.

    Mit freundlichen Grüßen,
    Christian Bartels.

  9. #21
    Registriert seit
    Sep 2010
    Beiträge
    14
    Zitat Zitat von Pikachu Beitrag anzeigen
    Ein DMPOBJ OBJ(QSYS/QWCCCRVC) OBJTYPE(*PGM) erstellt eine Spooldatei, in der die Adresse dieses Programmobjekts steht (links oben in der Spooldatei).

    Ein DMPSYSOBJ OBJ(QINSEPT) CONTEXT(QSYS) TYPE(19) SUBTYPE(C3) erstellt eine Spooldatei, in der die Positionen der verschiedenen Programmobjekte in der SEPT stehen.

    ...
    000530 SYP 02 01 QWCCCRVC 04 01 QSYS
    ...

    Bei euch steht da vermutlich "Objekt zerstört".

    Per STRSST > "Start a service tool" > "Display/Alter/Dump" > "Display/Alter storage" > "Machine Interface (MI) object" > "Space (19)" > "Find by object name and context name" kann der Inhalt des Objekts:

    Object: (19) - Space / QINSEPT / C3
    Context: QSYS / 01

    unter "Hexadecimal, alter capable" angezeigt werden.

    Hier sollte in der Zeile 1530 (!) an den Stellen XXXXXXXX XX die ersten 5 Bytes der Adresse (siehe oben) des Programmobjekts QWCCCRVC stehen.

    1530 00048000 00000000 XXXXXXXX XX00023F

    Überprüft das mal auf einem anderen System von euch (DMPOBJ um die Adresse zu ermitteln und STRSST um in die SEPT an Position 1530 zu sehen)!

    Mittels "F11=Alter storage" können die Stellen XXXXXXXX XX geändert werden. (Vor dem Ändern unbedingt den vorherigen Inhalt notieren !!!)

    Alle Angaben ohne Gewähr !!!
    Seid vorsichtig beim Ändern !!!


    Hallo Liebe Gemeinde!

    Ich wollte euch nur an dieser Stelle informieren das ich das Object QWCCCRVC wieder herstellen konnte.

    Ich habe mich an die Anleitung von Pikachu gehalten. Habe es mit Samthandschuhen und gestrichen voller Hose gewagt und gewonnen.

    Nach dieser Anleitung hat es funktioniert. Nun kann ich wieder Data-Areas erstellen.

    Vielen Dank nochmal für eure Hilfe und ein gutes
    rüberkommen ins neue Jahr 2012!!!

    Viele Grüße

    Jan
    AS400-Newbie... :))

  10. #22
    Registriert seit
    Jul 2001
    Beiträge
    2.713
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Auch wenn ihr mir nicht glauben wollt, aber Pointer unterliegen da einem besonderen Schutz.
    Ich muss Dir da Deinen Glauben in die Sicherheit der AS/400 nehmen - sobald jemand (QSECOFR) Zugriff auf das DST/SST und Display/Alter/Dump hat - geht fast alles

    Sogar eine Manipulation von Journalen. Daher sollte in zertifizierter Umgebung der Zugriff auf DAD gesperrt und genau protokolliert werden.

    Andererseits ist die AS/400 trotzdem immer noch weitaus sicherer als der Rest der Welt. Habe da gewisse Erfahrungen als Gutachter - da wollte jemand mal unter Linux ein Logfile (textdatei) als Beweis anführen...


    -h
    IBM Champion 2022, 2023, 2024, 2025
    Common Europe Advisory Council / Hall of Fame
    http://pub400.com
    visit www.POWERbunker.com for bespoke IBM i hosting

Similar Threads

  1. Call Externes Programm zerstört Feldinhalt in RPG
    By Michael Rude in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 09-11-11, 14:10
  2. HA Cluster - vom Test zerstört
    By will_i in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 21-11-05, 14:45

Berechtigungen

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