Anmelden

View Full Version : QSYSOPR Meldungen als Email ausgeben



Seiten : 1 [2] 3 4

COS
20-01-11, 09:53
es funktioniert auch die gute alte Methode:

an einem PC zu allen zu überwachenden Systemen ein 5250-Bildschirm anmelden (IBM-i Access) und soweit minimieren,
daß zB 9 Sessions (zu 9 LPARs) auf den Bildschirm passen,

dann in jedem System:
chgmsgq qsysopr *break sev(50)

und falls dann eine Meldung kommt von einer der zB 9 Sessions,
gibt der PC dann akustisch ein Signal .....

DBlazkow
20-01-11, 10:31
Verbesserungsvorschlag:
Program ohne DLYJOB Schleife und
RCVMSG mit Parameter WAIT(*MAX).
Damit wird von eine Seite Performance gespart und von andere bekommt man die Infos sofort.


Hierzu musst du ein CLP schreiben, dass per DLYJOB eine Zeit (z.B. 5 Sekunden) wartet und dann per RCVMSG die Nachrichten aus QSYSOPR liest und als Text bzw. Titel per Mail versendet.

Jede Nachricht hat eine 4-stelligen (4-Byte) MSGKEY, so dass man relativ zu diesem MSGKEY die nächste Nachricht abrufen kann, z.B.:

DCL &MSGKEY *CHAR 4
DCL &MSGAKT *CHAR 4

RCVMSG MSGQ(QSYSOPR)
MSGTYPE(*LAST)
RMV(*NO)
KEYVAR(&MSGKEY)

NEXTMSG:
RCVMSG MSGQ(QSYSOPR)
MSGTYPE(*NEXT)
MSGKEY(&MSGKEY)
RMV(*NO)
KEYVAR(&MSGAKT)
MSG(&TEXT)
RTNTYPE(&TYPE)
IF (&MSGAKT *NE ' ') DO
IF (&TYPE *EQ '05') DO
SNDDST ...
ENDDO
CHGVAR &MSGKEY &MSGAKT
GOTO NEXTMSG
ENDDO
DLYJOB 5
GOTO NEXTMSG

In &TYPE steht '05' wenn es ein Abfragenachricht ist.

Dieses CLP kannst du per Autostartjob in ein Subsystem packen, so dass es bei IPL bzw. Start des Subsystem sofort losrennt.

Um nicht jedesmal alle Nachrichten zu lesen wird bei Start der letzte Schlüssel geladen.

Dieses Programm musst du leider in jede LPAR einbringen.
In jeder LPAR musst du auch die Mail konfigurieren.

bettina_martin
31-01-11, 12:36
hi,

habe nun begonnen ein kleines cl zu basteln, welches offene qsys-opr meldungen vermailt.

ABER: jetzt wollen wir einige Meldungen (an die 20-30) ausklammern vom automatischen vermailen, d.h. für diese soll KEINE Mail geschickt werden.

Wie kann ich beim 'loop' über die msgq qsyopr diese am besten ausfiltern ? ich möchte nicht hardcoded die auszunehmenden msg-numbers im CL ausfiltern. kann ich das sinnvoll über eine Tabelle machen die irgendwie mit einem Tool pflegbar ist ?

lg, martin

Fuerchau
31-01-11, 12:44
Da hilft nur ein kleines RPG, dem du den Schlüssel übergibst und dir ein OK/Nicht OK zurückgibt.
Native in CLP kannst du nicht auf eine Datei mit Schlüssel zugreifen.

Die Alternative ist eine kleine MSGF, in der du die zu überwachenden oder nicht zu überwachenden hinterlegst und dann per RTVMSG mittels MONMSG auf Existenz prüfst.

Mein Empfehlung wäre da allerdings das RPG'le.

KingofKning
31-01-11, 12:46
Klar,
machste Dir eine PF mit den Nummern drin,
nimmst Dein Cl, rufts ein andres Cl mit der Nummer auf welches die Datei durchliest und Dir als Rückgabewert ja oder nein gibt.
Fettig ist die Brause

GG

bettina_martin
31-01-11, 12:47
Klar,
machste Dir eine PF mit den Nummern drin,
nimmst Dein Cl, rufts ein andres Cl mit der Nummer auf welches die Datei durchliest und Dir als Rückgabewert ja oder nein gibt.
Fettig ist die Brause

GG

oh ja, so einfach kannst gehen ! *aufdenkopfklopf* ;-)

BenderD
31-01-11, 12:55
... da kann die Brause aber labberig werden, bis das Programm das sequentiell durchhat, wenn da viele drinstehen.

D*B


Klar,
machste Dir eine PF mit den Nummern drin,
nimmst Dein Cl, rufts ein andres Cl mit der Nummer auf welches die Datei durchliest und Dir als Rückgabewert ja oder nein gibt.
Fettig ist die Brause

GG

Pikachu
31-01-11, 13:07
Native in CLP kannst du nicht auf eine Datei mit Schlüssel zugreifen.
Doch, das geht (einigermaßen). Mit OVRDBF POSITION().

bettina_martin
31-01-11, 13:21
... da kann die Brause aber labberig werden, bis das Programm das sequentiell durchhat, wenn da viele drinstehen.

D*B

also wenn ich da alle 3 Minuten drüber loope wird das kein Problem sein denke ich :)

Fuerchau
31-01-11, 14:14
Das Problem ist doch, dass du je Nachricht alle Einträge durchsuchen musst.
Wenn du also alle 3 Minuten 100 Nachrichten zu prüfen hast, deine "Tabelle" 100 Einträge enthält, benötigst im nagtiven Fall (Eintrag nicht gefunden) 10.000 Zugriffe.

Was den OVRDBF angeht, so ist in CLP immer noch das Problem, dass eine Datei nicht mehrfach gelesen werden kann (CLLE ggf. schon).

Was spricht also gegen ein Mini-RPG, dass nur einen Chain macht ?