Und auf welcher Ebene führst du WRITE MSGCTL aus?
Wird an diese Ebene die Nachricht gesendet?
Wenn du das wieder in einer Unterprozedur machst, können die Nachrichten da nicht ankommen.

Siehe noch mal in der Doku:
https://www.ibm.com/docs/en/i/7.2?to...s/QMHSNDPM.htm

Du musst die Nachricht an den Callstack-Eintrag schicken, der dann die nachricht verarbeiten soll.