Client stürzt während des Betriebs ab (’‘bleibt stehen’’)
Verhalten: Der verinice-Client führt eine länger andauernde Operation aus (z.b. Erstellung eines Reports, Durchführen eines Exports / Imports, … ) und irgendwann kommt vom Client keine Rückmeldung mehr, oder aber auch der Client stürzt ohne Rückmeldung ab. In den Log-Files tauchen Exceptions folgender Form auf:
Target exception: org.springframework.remoting.RemoteAccessException:
Could not access HTTP invoker remote service at [http://localhost:8800/service/commandServiceHttpInvoker];
nested exception is java.lang.OutOfMemoryError: PermGen space
...
Kunden sprechen in solchen Fällen auch gern vom ‘‘stehen bleiben’’ des Clients.
Lösungsansatz: Der Client verfügt über nicht ausreichend Speicher, häufig tritt dieser Fehler bei benutzen der Standalonevariante auf, da alle Tasks die sonst auf dem entfernten (speicherstarken) Server durchgeführt werden, jetzt auf dem Rechner ausgeführt werden, auf dem der Client selber auch läuft. Um den für verinice verfügbaren Speicher zu erhöhen muss die Datei verinice.ini angepasst werden:
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505
-data
@user.home/verinice/workspace
-vmargs
-Xms64m
-Xmx512m
-XX:MaxPermSize=128m
-Dorg.osgi.service.http.port=8800
-Dorg.ops4j.pax.web.listening.addresses=localhost
-Dosgi.parentClassloader=ext
Der Parameter Xmx gibt den maximal zur Verfügung stehenden Speicher an, der Parameter XX:MaxPermSize den Teil vom (zugewiesenen) Speicher der von der JVM für bestimmte Operationen benutzt werden darf. Zur Problemlösung die Werte dieser beiden Parameter erhöhen (z.B. jeweils verdoppeln, wenn kein Erfolg Eintritt erneut verdoppeln).
Hinweis: ab Java 8 (verinice in Version 1.6.1 setzt Java 6 ein) gibt es den PermGen-Speicher nicht mehr und der zweite Parameter wird überflüssig.
Einschränkung bei Windows 32-Bit: Unter Windows 7 32-Bit (und 32-Bit Applikationen und Windows 7 64-Bit) stehen pro Applikation max 2GB RAM zur Verfügung, ca 330MB davon braucht schon die JVM, also bleiben nur ca 1060MB (experimentell ermittelt und von System zu System unterschiedlich) übrig, die man zwischen Heap und PermGen aufteilen muss. Abhilfe schafft Verwendung der 64-Bit Version von verinice unter 64-Bit Windows 7.