Hallo zusammen,

wir haben ein Programm was e-mails sendet
hierfür haben wir ein Programm namens RPGMAILR welches z.B. folgende Prototypenbeschreibung hat

D RPGMail_send pr
D pEmail o class(*java: RPGMail)

Jetzt ist es so, dass dieses RPGMAILR mehrfach im Nachtablauf aufgerufen wird.

Als letztes wird ein Programm aufgerufen was bisher einen SNDDST gemacht hat und e-mails an verschiedene Adressen gesendet hat dass der Tagesabschluß normal beendet wurde.
Aus diesem Programm haben ich nun den SNDDST entfernt und den CALL von RPGMAILR eingebaut.

Wenn ich dieses Programm auf der Befehlsebene mit CALL aufrufe oder auch mit SBMJOB bekomme ich die E-Mails wie ich es erwarte.

Im Nachtjob jedoch erhalte ich eine Abbruchnachricht obwohl vorher einige der RPGMAILR Aufrufe problemlos gelaufen sind

Ich bekomme den Fehler MCH74A5
The Java Virtual Machine has ended.

Cause . . . . . : Java Virtual Machine 1 has ended because of reason 2. The

reason codes are defined as follows: 01- A Java program called the
java.lang.System.exit method with a zero status code. 02- A Java program
called the java.lang.System.exit method with a non zero status code of 143.
03- An unexpected system error was detected. 04- A critical Java Virtual
Machine thread has ended and processing cannot continue. Recovery . . . :
If the Java Virtual Machine ended because of reason code 03, an internal
error has occurred. Contact you service representative. Information about
the error was saved in the Licensed Internal Code log.

Ich hab mich mal mit ChatGPt unterhalten und der meint es könnte sich um Speicherproblem handeln
ChatGPT -->
Was hier sehr wahrscheinlich passiert

Das Verhalten passt fast perfekt zu:
Ressourcen-/Speicherleck über die Laufzeit des Jobs

Der Job „sammelt“ über die Zeit:

  • Java Heap
  • offene Streams
  • SMTP-Verbindungen
  • temporäre Objekte (z. B. Attachments)

Jeder einzelne Aufruf funktioniert noch
Beim letzten ist ein Limit erreicht ? JVM beendet sich

Hat von Euch jemand eine Idee?