Da gabs schon mehrere Hinweise.
Am besten startet man ein BatchJava (z.B. Prestart-Job), dass dann per Kommunikation (z.B. DTAQ) auf Aufträge wartet, und das Ergebnis zurücksendet.

Eine Keyed-DTAQ eignet sich dafür ganz gut, da die Schlüssel schön getrennt werden können.
Das Javaprogramm warten auf einen bestimmten Key (z.B. "TUWAS"), in den Daten wird z.B. die Job-Nr. als Antwortkey mitgegeben.
Das Empfängerprogramm kann dann gezielt auf diesen Key lesen und warten (ggf. mit Timeout).

Das hat den Vorteil, dass beliebig viele Jobs mit dem Auftragnehmer kommunizieren können oder der Auftragnehmer mittels mehrerer Threads parallele Aufträge ausführen kann.

Die DTAQ wird dabei sehr schön nach FIFO synchronisiert.

Du musst nur noch "veraltete" Schlüssel erkennen und ggf. bereinigen (z.B. QCLRDTAQ bei IPL).