[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2006
    Beiträge
    195

    DSPF- nach 10 min Spähren

    Hallo *all,

    Frage :
    ist es möglich ein DSPF nach 2 min zu Spähren (Anmeldewindow ausgeben) und nach der anmeldung wieder freigeben.

    Danke

    signoff

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Du kannst eine DTAQ an die DSPF hängen und per QRCVDTAQ auf Timeout oder Enter warten.
    Zusätzlich alle Formate mit INVITE beim Write freigeben.
    Dann kehrt ein READ direkt mit Daten zurück.
    Ein EXFMT funktioniert in diesem Zusammenhang leider nicht.

    Ein DSCJOB trennt den Job so dass ein Wiederaufnehmen automatisch funktioniert.
    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 2014
    Beiträge
    310
    Ich glaube fast, dass die Frage so gemeint ist, ob ein Bildschirm (egal welche Applikation läuft) vom System nach x Minuten gesperrt werden kann (also ohne etwas an der Applikation zu ändern), kann das sein?

    Falls ja, dann geht das so:
    Systemwert QINACTITV auf die gewünschten Minuten setzen.
    Dann im Systemwert QINACTMSGQ den Wert "*DSCJOB" eintragen.
    Das bewirkt, dass ein DSPF nach x Minuten getrennt wird und die Anmeldeanzeige erscheint. Der Job selbst bleibt aber aktiv und kann nach Anmeldung fortgesetzt werden.

    (und evtl. noch den Systemwert QDSCJOBITV entsprechend setzen)

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Da dies systemweit gilt hätte ich da schon ein Problem immer nach 2 Minuten eine neue Anmeldung zu erzwingen.
    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. #5
    Registriert seit
    Dec 2014
    Beiträge
    310
    Stimmt auch wieder.

    Daher evtl. besser:
    Im Systemwert QINACTMSGQ eine MSGQ angeben, diese per Pgm überwachen und dort dann individuell entscheiden, ob der Job unterbrochen werden soll oder nicht.
    (Hinweis bei Telnet-Sitzung: Für diesen Vorgang muss in der Sitzungsdefinition ein Einheitenname angegeben werden)

  6. #6
    Registriert seit
    May 2006
    Beiträge
    195
    Hallo *all,
    meine Lösung ist nicht die Beste aber:
    mit jeder DSPF Ausgabe wird ein Job abgesetzt (der nur für dieses PGM und Benutzer), nach n Sekunden wird ein Spähr- Window ausgegeben oder der USR macht "Enter" und der alte Job wird beendet und ein neuer erstellt.

    ich hoffe es war verständlich ;-)

    Ich habe gehofft das es wirklich ein Systemparameter auf USR Ebene existiert.
    Ich möchte nur 200 von 500 USR mit dem Spähr-Window bestrafen.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Ganz schön kompliziert und systembelastend.
    Ggf. geht es hier auch einfacher:
    Für jedes Device gibt es eine eigene MSGQUEUE.
    Per CHGMSGQ ... DLVRY(*BREAK) ... PGM(MYLIB/MYPGM) kannst du ein Programm hinterlegen.
    Dann machst du ein zentrales (Prestart-Job) Programm, dass per DTAQ mit Timeout die entsprechenden Job's (Datenbank) überwacht.
    Da du ja sowieso jedes betroffene Programm anpassen musst reicht hier eine Anmeldung des Jobs am Überwachungsjob sowie ein CHGMSGQ.
    Nach jedem Enter/F-Taste sendest du einen Keepalive per QSNDDTAQ an den Überwachungsjob.
    Beim Beenden erfolgt (ggf.)noch ein Abmelden am Überwachungsjob.

    Der Überwachungsjob sendet per SNDBRKMSG bei Timeout eine Nachricht an die Station.
    Nun wird dein Programm aufgerufen, welches nun entscheidet was gemacht wird:
    a) eigenen Bildschirm anzeigen
    b) ENDJOB/DSCJOB einleiten.

    Per JOB-API kann geprüft werden, ob der Job bei Timeout noch aktiv ist um ihn ggf. aus der Liste auszutragen.
    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
    Dec 2014
    Beiträge
    310
    :-)

    Warum alles so extrem umständlich?
    Nochmals:

    Zuerst im Systemwert QINACTITV die gewünschten Minuten eingeben.
    Dann im Systemwert QINACTMSGQ eine MSGQ angeben.

    Nun EIN Pgm machen, welches diese MSGQ überwacht.
    Wenn da eine Msg reinkommt, dann ganz einfach entscheiden (zB anhand vom User) ob der Job mit DSCJOB gesperrt werden soll oder nicht. Somit betrifft das nur die User, die Du (wie Du es so schön nennst) bestrafen willst.

    EIN Pgm, EIN Job, fertig ...

  9. #9
    Registriert seit
    May 2006
    Beiträge
    195
    ok,
    verstehe ich richtig, das bei 5000 User (bestrafen möchte ich nur 500 User)
    habe ich 5000 nachrichten?

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Das ist korrekt.
    Aber das ist ja auch egal.
    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. Fehler bei Subfile mit DSPF SHARE(*YES) zwischen 2 Programmen
    By alexk2013 in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 11-09-14, 07:42
  2. DSPF ERRMSG Keyword - Text wird nicht in Zeile 25 angezeigt
    By TheDevil in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 18-12-13, 11:20
  3. DSPF / Window / Overlay
    By malzusrex in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-05-03, 11:05
  4. DSPF-Feld aufbereiten
    By GS in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 09-10-02, 13:18
  5. Datumsfelder in DSPF / Editiercode ?
    By JoergZ in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 30-07-01, 16:44

Berechtigungen

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