[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    163

    Fehler bei Prozedur in Serviceprogramm

    Hallo zusammen,

    ich habe ein Problem mit einem Serviceprogramm. Das Programm enthält mehrere Prozeduren. Wenn in einer Prozedur ein Fehler auftritt (in diesem Fall war es ein doppelter Schlüssel), wird dieser Fehler im aufrufenden Progarmm angezeigt: The call to MOVEARTICL ended in error (C G D F).

    Nachdem ich das Programm neu gestartet habe, erhalte ich beim Aufruf einer Prozedur aus diesem Serviceprogram die Fehler:
    The call to CLOSEOB02 ended in error (C G D F).
    Tried to refer to all or part of an object that no longer exists.

    Ich habe schon ein ein RCLRSC versucht, hat aber nichts gebracht. Erst nachdem ich mich neu angemeldet habe, läuft es wieder. Hat jemand eine Idee, wie ich das Problem beheben kann?

    Danke

    Hubert

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    Ggf. ist ein RCLACTGRP erforderlich !
    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
    Aug 2003
    Beiträge
    163
    Leider hat auch RCLACTGRP nicht geholfen.

    Das Programm nutzt mehrere Serviceprogramme. Jedes Programm hat seine eigene Activation Group. Die Activation Group des Serviceprogramms, in dem der Fehler aufgetreten ist, existiert danach nicht mehr.

    Da kann ich nur hoffen, dass ich jetzt alle möglichen Fehler sauber abgefangen hab.

    Danke für die Unterstützung.

    Hubert

  4. #4
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von Hubert Beitrag anzeigen
    Hallo zusammen,

    ich habe ein Problem mit einem Serviceprogramm. Das Programm enthält mehrere Prozeduren. Wenn in einer Prozedur ein Fehler auftritt (in diesem Fall war es ein doppelter Schlüssel), wird dieser Fehler im aufrufenden Progarmm angezeigt: The call to MOVEARTICL ended in error (C G D F).

    Nachdem ich das Programm neu gestartet habe, erhalte ich beim Aufruf einer Prozedur aus diesem Serviceprogram die Fehler:
    The call to CLOSEOB02 ended in error (C G D F).
    Tried to refer to all or part of an object that no longer exists.

    Ich habe schon ein ein RCLRSC versucht, hat aber nichts gebracht. Erst nachdem ich mich neu angemeldet habe, läuft es wieder. Hat jemand eine Idee, wie ich das Problem beheben kann?

    Danke

    Hubert
    Gib beim nächsten mal D ein, meines wissens nach müßte ein detailierter fehlerbericht die folge sein

    Gruß AS400.lehrling

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    163
    Leider steht die Maschine in Toronto und wird von dort administriert. Die Fehlermeldung wird vom System sofort mit 'C' beantwortet, da hab ich keine Chance zwischen zu kommen. Nach mehreren vergeblichen Versuchen, ein 'D' zu bekommen hab ich es aufgegeben.

  6. #6
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Bleibt nur eine Info an den Admin vor Ort übrig, falls der den Lust hat ein D zu ermöglichen.

    AS400.lehrling

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    Dann ist bei solch schwerwiegenden Fehlern eher ein ENDJOB (SIGNOFF) erforderlich.
    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. #8
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Dann ist bei solch schwerwiegenden Fehlern eher ein ENDJOB (SIGNOFF) erforderlich.
    Das beendet aber nur die jobs des Nutzers, die fehlerursache wird dadurch nicht offendsichtlich.

    Die Frage nachbdem warum läßt sich doch nur mit einer detailierten problenanalyse beantworten.

    Gruß AS400.lehrling

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    Das ist natürlich klar, deshalb kannst du ggf. "SIGNOFF *LIST" verwenden.

    Ein Programmdump ist hierzu natürlich auch hilfreich.
    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

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

    der im ersten Posting genannte Fehler wird wohl gerade durch den Reclaim hervorgebracht.
    Szenario: SRVPGMA läuft in ACTGRP A
    SRVPGMB läuft in ACTGRP B
    RCLACTGRP B macht alle ProcedurePointer in A auf
    Prozeduren in B ungültig
    der nächste Aufruf einer Porcedure aus SRVPGMB aus
    SRVPGMB bringt den Fehler.
    Konsequenz: Activationgroups von Serviceprogramme mit eigenen Activationgroups kann man nicht per Reclaim killen.
    Lösungswege:
    a) verlassen des steuernden Programmes und RCLACTGRP *eligible,
    schwache Lösung, es darf auch kein weiteres Programm im Call Stack drunter liegen, das eines der SRVPGMs gebunden hat.
    b) SRVPGMs mit *CALLER erstellen und den Programmen eigene ACTGRP (= Programmname) geben - einfache Lösung, die meist (ich weiß, nicht immer) ausreicht.
    c) Den maroden Aktivierungsprozess der Runtime nicht benutzen und die Sache selber in die Hand nehmen: sprich zur Laufzeit binden per API (gibts OpenSource auf meiner WebSeite PROCP4NAME) - felxibel und stabil.
    Grundsätzlich gilt natürlich, dass die Instabilität in der Prozedur selber geheilt werdne muss, um diesen Wackelhaufen zu sanieren. Anfangen würde ich da beim Programm Design und dem Aufräumen der Aktivierungsgruppen. Danach würde ich entweder einen ILE Condition Handler für das "Restfehlerhandling" dranhängen, oder die exportierten Procedures in Monitorblöcke einpacken.

    mfg

    Dieter Bender
    Zitat Zitat von Hubert Beitrag anzeigen
    Leider hat auch RCLACTGRP nicht geholfen.

    Das Programm nutzt mehrere Serviceprogramme. Jedes Programm hat seine eigene Activation Group. Die Activation Group des Serviceprogramms, in dem der Fehler aufgetreten ist, existiert danach nicht mehr.

    Da kann ich nur hoffen, dass ich jetzt alle möglichen Fehler sauber abgefangen hab.

    Danke für die Unterstützung.

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

Similar Threads

  1. Serviceprogramm QC3CTX???
    By jo400 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 17-11-06, 13:21
  2. Fehler im SQL bzw. Joblog
    By GraueEminenz in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 10-07-06, 11:58
  3. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  4. ODBC Verbindungs Fehler (-7778)
    By Hubert in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 10-05-06, 09:41
  5. Store Procedure Fehler SQL0579
    By Sven Schneider in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 21-11-05, 21:05

Berechtigungen

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