[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2004
    Beiträge
    18

    Message Handling

    Im System werden Nachrichten doch über Message-Keys (4B) identifiziert. Meine Frage ist:

    Wenn eine Nachricht gelöscht wurde, wann wird der Message-Key frühestens wiederverwendet?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wahrscheinlich gar nicht.
    Immerhin gibt es da 2^32-2 Möglichkeiten (BLANK ist ja nicht möglich).

    Wozu ist es gut zu wissen ?
    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
    Feb 2004
    Beiträge
    18
    Ich möchte ein Programm schreiben, dass die Message-Queue QSYSOPR überwacht, und beim Auftreten von bestimmten Message-IDs oder bei Nachrichten, die eine bestimmte Severity überschreiten eine Mail bzw. SMS verschickt (Fehler beim Plattenadapter, o. Ä.).

    Hab das Programm mit dem API QMHRCVM soweit schon fertig. Das API liefert die Nachrichten die in einer Message-Queue stehen. Man kann alle Nachrichten empfangen, die noch nicht gelesen wurden, das wäre das einfachste. Dafür müßte man die Nachrichten, die bereits abgerufen wurden auf *OLD setzen. Das will ich aber nicht, da evtl. noch andere Prozesse die Nachrichten lesen.

    Also muss ich mir die Message-Keys merken, die ich bereits empfangen habe... Wenn die aber relativ bald wiederverwendet werden, kann es sein, dass ich eine "neue" Nachricht ignoriere.

  4. #4
    Registriert seit
    Aug 2004
    Beiträge
    923
    Hello,

    wenn Du das Format RCVM0200 verwendest, könntest Du ja auch nocht die Zeitfelder mit in Deine Überlegung reinnehmen?
    Selbst wenn die Nummer überläuft, ist doch die Sendtime eine andere?

    kuempi

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Wie überwachst du die Nachrichtenwarteschlange? Siehst du immer mal wieder nach und liest alle Nachrichten? Oder wartet dein Programm auf neue Nachrichten in dieser Warteschlange?

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Innerhalb einer MSGQ kann kein MSGKEY doppelt auftreten.
    Da der RCVMSG (analog das API) relativ zum MSGKEY die nächste Nachricht abrufen kann, muss der Schlüssel ja eindeutig sein.
    Du hast nur dann verloren, wenn die Nachricht zwischenzeitlich entfernt wurde.

    Ich habe auch schon solche Nachrichtenüberwachungen realisiert und habe mir die MSGKEY's gar nicht gemerkt (da sie gelöscht werden können) sondern bin tatsächlich nach Datum Uhrzeit gegangen. Dabei habe ich die letzten Nachrichten zuerst verarbeitet.
    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. #7
    Registriert seit
    Feb 2004
    Beiträge
    18
    @kuempi von stein:
    ja, ich habe es jetzt über Timestamp + MSG-Key aus RCVM0200 realisiert. Die Nachrichten vom Vortag werden beim Programmstart aus der Protokolldatei gelöscht und beim RCV ignoriert.

    @Pikachu:
    Das API bietet zwar einen WAIT-Parameter, allerdings wird die MSGQ während dem Warten gesperrt, so dass keine Nachrichten gelöscht oder beantwortet werden können. Das Programm prüft die MSGQ einfach alle 10 Sekunden.

Similar Threads

  1. Message aus MSGF in RPG-ILE auslesen
    By TomWaf in forum NEWSboard Programmierung
    Antworten: 16
    Letzter Beitrag: 24-08-10, 13:47
  2. CPYF Fehler handling
    By RLPforum in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 05-07-06, 14:04
  3. Antworten: 15
    Letzter Beitrag: 18-03-06, 11:45
  4. Fehler bei Stored Procedure
    By peter.kinne in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 21-09-05, 11:22
  5. Abfrage (*YESBUTTON, *NOBUTTON) einer Message
    By woki in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 29-04-04, 08:38

Berechtigungen

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