Java.lang.OutOfMemoryError: JVM des Stapels wurde nicht gestopptJava

Java-Forum
Anonymous
 Java.lang.OutOfMemoryError: JVM des Stapels wurde nicht gestoppt

Post by Anonymous »

Ich habe eine Spring-Boot-Anwendung mit Batches.
Ich erhalte die folgende Fehlermeldung, wenn ich eine Auswahl in einem Batch durchführe:

Code: Select all

java.lang.OutOfMemoryError: Cannot reserve 1048576 bytes of direct buffer memory (allocated: 9695196, limit: 10485760)
at java.nio.Bits.reserveMemory(Unknown Source)
at java.nio.DirectByteBuffer.(Unknown Source)
...
Ich habe versucht, das Throwable abzufangen, um ein Protokoll in einer Ergebnistabelle zu haben, aber das ist nicht möglich. Der „Haupt“-Thread setzt den Code nicht fort und das Protokoll wird nicht aufgerufen (erscheint nicht in der Protokolldatei: Ich habe ein Protokoll vor der Auswahl und dann das Fehlerprotokoll ohne das Protokoll im Catch).
Was ich sah, ist, dass der Fehler anscheinend mit einem anderen Thread der JVM protokolliert wurde (nicht mit dem „Haupt“-Thread, sondern mit dem „reactor-http-epoll-3“-Thread).
Die JVM wird nicht gestoppt, wenn diese Ausnahme auftritt geworfen (ich muss den Prozess selbst beenden). Ich habe das im Wesentlichen:

Code: Select all

public static void main(String[] args) {
System.exit(SpringApplication.exit(SpringApplication.run(MyBatchLauncher.class, args)));
}
Ist es bitte möglich, den Fehler abzufangen und die JVM ordnungsgemäß zu stoppen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post