Mittels SNDPGMMSG kann man nur den eigenen CALL-Stack beschicken und somit nur den ausführenden Job.

Es gibt einen kleinen Trick:
Per CHGMSGQ kann man auf einer MSGQ ein Programm eintragen, dass beim eintreffen einer Nachricht aufgerufen wird.
Per AS400Message-Objekt kann man dann an diese Nachrichten senden worauf hin dann das Programm aufgerufen wird.

Das CLP, dass den Java-Job initiiert legt also eine jobspezifische MSGQ an und trägt ein Programm ein. Der Name der MSGQ muss natürlich an das Javaprogramm übermittelt werden.
Sendet dann das Javaprogramm eine Nachricht führt das zum Aufruf des überwachenden Programmes.
Dieses kann dann die Nachricht ins Joblog schreiben.

Alternativ kann man auch einfach nur die Nachrichten an die MSGQ senden und wenn das Javaprogramm, bzw. der Job, fertig ist, liest man diese dann per RCVMSG einfach aus.