Search the FirstSpirit Knowledge Base
Hallo,
wir haben aktuell beim Kunden das Problem, dass sein FS Server Log bei einer bestimmten Funktion alle 2 Minuten voll ist und neu angelegt wird. Ursächlich hierfür sind immer wieder Full JVM Thread Dumps, die durch folgende Exception hervorgerufen werden:
FATAL 10.09.2014 18:36:07.461 (de.espirit.firstspirit.server.ExecutionManagerImpl): cannot submit scheduled task to DEFAULT queue, dumping threads
Zur Funktion:
Die Funktion ist ein Langläufer von ca. 30 Minuten Laufzeit und wird über einen Service angestoßen. Die Funktion läuft auf dem Server singlethreaded.
Während die Funktion auf dem Server läuft, fragt der Client alle 2 Sekunden den Status und Logmessages der Funktion ab. Also eigentlich eher unbedenklich, sollte man meinen. Jedoch scheinen genau diese Service Anfragen vom Server mit den besagten Exceptions quittiert zu werden.
Für uns hört sich das nach einem Konfigurationsproblem an.
Wir haben bereits im Manual erfahren, dass man eine ThreadPool Size setzen kann.
Der Kunde hat diese Einstellung gar nicht gesetzt, es geht um die Live Umgebung - was setzt E-Spirit dann als Default, weiß das jemand?
Wann genau tritt die angesprochene Exception auf?
Danke im Voraus,
viele Grüße aus Hamburg,
Ronny
Hallo Ronny,
der Bug, den Peter mit der internen ID erwähnt hat, wurde in einer neueren Version von FirstSpirit behoben. Du solltest also ein Update auf die aktuelle Version 5.1.209 in Erwägung ziehen.
Viele Grüße
Tim
An den Einstellungen für die Thread-Pools sollte man normalerweise nicht schrauben müssen.
Welche FirstSpirit-Version wird eingesetzt?
Interne ID: #157307
Hallo,
eingesetzt wird 5.1.106.
Hallo Ronny,
der Bug, den Peter mit der internen ID erwähnt hat, wurde in einer neueren Version von FirstSpirit behoben. Du solltest also ein Update auf die aktuelle Version 5.1.209 in Erwägung ziehen.
Viele Grüße
Tim
Hallo E-Spirit,
danke für die schnelle Antwort, dann wissen wir Bescheid.
Hallo E-Spirit,
es wäre aus Performance Gesichtsgründen evtl. sinnvoll, wenn wir die Indizierung über API pausieren könnten, bis die Migration durch ist. Wir reden hier von 17.000 Elementen über alle Projekte, die beim Kunden zu migrieren sind. 30 Minuten werden lediglich für 1 Projekt benötigt. Noch besser wäre eine intelligente Indizierung, die bei heavy load selbstständig pausiert und das so lange, bis wieder "Luft" ist.
Ist die Indizierung hier überhaupt der Bottleneck?
Damit man nicht vergisst, die Indizierung wieder fortzuführen könnte man als Parameter einen int delay mit Maximalhöhe angeben, so dass nur eine bestimmte Zeit pausiert werden kann.
Viele Grüße,
Novomind