PDA

View Full Version : PGM MSGQ auslese



K_Tippi
24-08-22, 15:38
Hallo
ich versuche gerade eine Info im CL auzulesen.
Hintergrund:
wir stellen Drucker von RMTOUTQ auf DEV um.
dh im CL löschen anhalten und löschen der Outq
...
und dann ein Ping auf den Neuen Druckernamen (IP wird über DNS/MAC -adresse vergeben.
Jetz möcht ich die IP auslesen und in eine Datenbank schreiben.
Ich hbe es Versucht mit
ping &neuname
RCVMSG PGMQ(*SAME) MSGQ(*PGMQ) MSGTYPE(*any) +
RMV(*NO) MSG(&MSG1) MSGDTA(&MSG2) MSGID(&TCP)
aber bekomme irgendwelche Nachrichten von vorherigen Aktionen im Programm.


hat jemand einen Tipp

camouflage
25-08-22, 07:48
Versteh ich das richtig, Du möchtest einen Ping auf den Druckernamen machen und die IP Adresse auslesen. Damit der Ping mit dem Namen funktioniert, brauchst Du, soviel ich weiss, einen Eintrag in der TCP-IP Hosttabelle. Diese kannst Du ja auch in der TCP Administration abrufen und auch eine Liste drucken. Und wenn der Drucker als DEV konfiguriert ist, gäbe es noch das Retrieve Device Description (QDCRDEVD) API.

Fuerchau
25-08-22, 08:09
Wenn der DNS-Server aber nicht die IBM i ist, steht nichts in der Host-Tabelle.
Was den Ping angeht, so sendet dieser die Nachrichten an das übergeordnete Programm.
Es kommt also auf die Reihenfolge der Aufrufe an.
EIn CLP, dass den Ping absetzt, sollte also aus der eigenen PGMQ die Nachrichten rückwärts (*LAST) auslesen können. Ein Remove *YES wäre dazu hilfreich.

K_Tippi
25-08-22, 15:02
Danke es funktioniert. ich muss nur mehrmals lesen (und löschen) bis ich die richtige Meldung habe.
"PING-Antwort..." Das Ganze sicherheitshalber nur max. 5 mal.

Fuerchau
25-08-22, 16:40
Die Anzahl kannst du im Kommando anpassen. Hoffe mal, dass kein Spaßvogel die Defaults mal anpasst.
Z.B. NBRPKT(10) WAITTIME(30).

K_Tippi
26-08-22, 06:48
Guten Morgen,
ja deshalb habe ich es sicherheitshalber altmodisch über eine Zählschleife gemacht. :-))