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:
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.
Entweder der Client friert komplett ein, nur durch einen Server-Neustart kann weiter gearbeitet werden, oder es wird eine Erfolgsmeldung angezeigt, die *.vna fehlt jedoch.
Die Fehlermeldung im verinice-server,log lautet
2019-04-01 07:14:10,352 WARN [elasticsearch[elasticsearch-hws01025.dom.lan][generic][T#6]] (ShardStateAction.java:144) - [elasticsearch-hws01025.dom.lan] [verinice][0] received shard failed for [verinice][0], node[9tHpWGC7RUePay7kKYQ7QA], [P], s[STARTED], indexUUID [PKaXehzcSTWIW5ylZXwsaA], reason [engine failure, message [merge exception][MergeException[org.apache.lucene.store.AlreadyClosedException: refusing to delete any files: this IndexWriter hit an unrecoverable exception]; nested: AlreadyClosedException[refusing to delete any files: this IndexWriter hit an unrecoverable exception]; nested: OutOfMemoryError[Java heap space]; ]]
Verinice-client-log
2019-04-01 07:01:22,639 ERROR [main] (RightsServiceClient.java:77) - Error while checking action. Returning false
org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://10.22.1.75/veriniceserver/service/rightsServiceHttpInvoker
]; nested exception is org.apache.commons.httpclient.HttpException: Did not receive successful HTTP response: status code = 503, status message = [Service Unavailable]
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:211)
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:144)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy10.getConfiguration(Unknown Source)
Wenn nicht sowieso alles abstürzt kommt eine Fehlermeldung
Error while exporting data.
org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed
Bitte kontaktieren Sie uns doch unter verinice@sernet.de zwecks Fehlersuche mit Verweis auf diesen Beitrag. Schicken Sie uns bitte das ganze Logfile verinice-server.log vom Server.