Kürzlich haben wir unsere Anwendung von der Web-Anwendung in Tomcat ausgeführt, um Spring-Boot-Anwendung mit Embedded Tomcat.Spring Boot Embedded Tomcat Anwendung Sitzung nicht ungültig
Nachdem die App mehrere Tage ausgeführt wurde, haben Arbeitsspeicher und CPU-Auslastung 100% erreicht. In Heap-Dump-Analyse kommt heraus, dass es eine Reihe von http-Session-Objekten gab, die nicht zerstört wurden.
Ich kann im debug sehen, dass Sitzungen mit konfigurierten Timeout-Wert, sagen wir, 5 Minuten erstellt. Aber nach dieser Zeit wird die Ungültigkeitserklärung nicht ausgelöst. Es wird nur aufgerufen, wenn ich nach der Zeitüberschreitung erneut anfordere.
ich dieses Verhalten mit app in tomcat verglichen habe laufen und ich, dass Sitzung Entwertung durch ContainerBackgroungProcessor Thread [Norm (ManagerBase) .processExpires()]
ich im Frühjahr Boot diesen Hintergrund-Thread nicht sehen ausgelöst sehen Anwendung.
Was wurde nach einigen Vorschlägen gefunden getan:
Sitzung Timeout in application.properties: server.session.timout = 300 oder in EmbeddedServletContainerCustomizer @Bean: factory.setSessionTimout (5, Timeunit .MINUTES)
Added HttpSessionEventPublisher und SessionRegistry Bohnen
Nichts hilft, Sitzungen werden zum Ablaufzeitpunkt nicht ungültig.
Ein Hinweis darauf?