[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2006
    Beiträge
    82

    sicherstellen das ein Trigger enabled wurde

    Hallo,

    ich, ein Nachwuchs RPG- Programmierer ;-) habe die Aufgabe ein CL zu schreiben welches einen Trigger abhängt, ein RPG aufruft und den Trigger anschließend wieder abhängt.
    So weit so gut. Das CL war fertig und ich habe es aufgerufen.
    Leider hat in der Zeit in der mein RPG lief jemande auf die Tabelle zugegriffen und das CL hat den Trigger nicht wieder angehängt.
    Gibts es eine Möglichkeit im CL zu kontrollieren bzw. dafür zu sorgen das der Trigger wirklich wieder angehängt wird !?

    Danke für eure Hilfe,
    André

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Beim ADDPFTRG mittels MONMSG feststellen, dass der Trigger angehängt wurde.
    Um sicherzustellen, dass kein Programm mit der Datei arbeiten kann wenn solche Aktionen ausgeführt werden, per ALCOBJ die Datei vorher exclusiv sperren und hinterher per DLCOBJ wieder freigeben.
    Allerdings stürzen dann andere Programme beim Zugriff auf die Datei ggf. ab !!!
    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
    Dec 2004
    Beiträge
    19
    Was du versuchen koenntest.... (habe es nicht getestet)

    Nach dem ADDPFTRG mit MONMSG MSGID(CPF0000) die fehlermeldung abfangen, einen kleinen jobdelay einbauen und wieder vor den ADDPFTRG springen.

    also z.B. so

    TRG1: ADDPFTRG FILE(TESTLIB/TESTPF) TRGTIME(*BEFORE) +
    TRGEVENT(*INSERT) PGM(TRGLIB/TRGPRG)

    MONMSG MSGID(CPF0000) EXEC(DO)
    DLYJOB DLY(60)
    GOTO TRG1


    mfg
    Guido

  4. #4
    Registriert seit
    Jan 2006
    Beiträge
    82
    Danke für deine Antwort.
    Bei der MONMSG kann ich einfach die CPF32C6 abfragen und dann evtl. neu versuchen den Trigger anzuhängen, oder?

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Stimmt, aber der Trigger hat ja eine spezielle Aufgabe und der Zugriff auf die Datei sollte verweigert werden, solange der Trigger eben nicht angehängt ist.
    Mittels ALCOBJ und MONMSG kannst du prüfen, ob die Datei verwendet wird und eben solange sperren, bis deine Aktion abgeschlossen ist.
    Je nach dem, wie die Datei verwendet wird oder wie lange sie noch bearbeitet wird, kann das Anhängen des Triggers eben dauern und solange wird die Datei eben nicht überwacht.
    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
    Dec 2004
    Beiträge
    19
    So in etwa war es geplant :-)

  7. #7
    Registriert seit
    Jan 2006
    Beiträge
    82
    Das sind die 3 Befehle aus meinem CL.

    CHGPFTRG FILE(LIB/FILE) TRG(*ALL) STATE(*DISABLED)
    RUNSQLSTM SRCFILE(LIB/FILE) SRCMBR(SQLFILE) COMMIT(*NONE)
    CHGPFTRG FILE(LIB/FILE) TRG(*ALL) STATE(*ENABLED)


    und so könnte es aussehen damit es klappt, oder?
    also einfach nur abfragen, ob ein Fehler aufgetreten ist und wenn ja dann nochmal versuchen den Trigger anzuhängen...

    CHGPFTRG FILE(LIB/FILE) TRG(*ALL) STATE(*DISABLED)
    RUNSQLSTM SRCFILE(LIB/FILE) SRCMBR(SQLFILE) COMMIT(*NONE)
    TRG1:
    CHGPFTRG FILE(LIB/FILE) TRG(*ALL) STATE(*ENABLED)
    MONMSG MSGID(CPF0000) EXEC(GOTO TRG1)

    Das Ding ist wir kopieren am Wochenende immer einige Umgebungen von uns mit Hilfe von CL´s und ständig sind dann montag morgen irgendwelche trigger nicht wieder angehängt... das soll vermieden werden !


    Danke für eure Hilfe...

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn du so verfährst, könnte es sein, dass die Programme übers WE nicht fertig werden !!!!
    Sie warten ja ständig auf Freigabe des Objektes.
    Übrigens auch der 1. CHGPFTRG kann fehlschlagen, wenn die Datei bereits offen ist !!!

    Mach dir lieber nochmal Gedanken zum Konzept mit ALCOBJ/DLCOBJ
    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. SQL Trigger
    By Jenne in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 19-01-07, 09:24
  2. SQL Trigger
    By bigmoon in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-09-06, 18:26
  3. create view oder constraint oder trigger oder ... ?
    By antvik in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 02-08-06, 18:04
  4. Trigger
    By peter.kinne in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 20-04-06, 10:21
  5. Trigger / ILE RPG
    By Frank Pusch in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 17-05-01, 09:34

Berechtigungen

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