Client stürzt während des Betriebs ab (bleibt stehen)

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.

1 Like

Hallo Herr Urygin,

haben Sie einen Rat für diesen Fehler bei

  • Verinice Pro
  • Client Win 10 64 Bit VM
  • Export eines Informationsverbunds

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)

Verinice.ini

-startup
plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.551.v20171108-1834
-data
@user.home/verinice/workspace
-vmargs
-Xms512m
-Xmx4g
-Dorg.osgi.service.http.port=8800
-Dorg.ops4j.pax.web.listening.addresses=localhost
-Djavax.activation.debug=true
-Dosgi.parentClassloader=ext
-Djavax.xml.soap.SOAPFactory=org.apache.axis.soap.SOAPFactoryImpl
-Djavax.xml.soap.MessageFactory=org.apache.axis.soap.MessageFactoryImpl
-Djavax.xml.soap.SOAPConnectionFactory=org.apache.axis.soap.SOAPConnectionFactoryImpl`

Besten Dank, Stefanie Langer

1 Like

In der Logdatei verinice-server.log auf dem Server steht die Meldung:

OutOfMemoryError[Java heap space]

Sie müssen daher dem Application-Server Tomcat mehr Speicher zuteilen. Bearbeiten Sie dafür die Datei

/etc/tomcat6/tomcat6.conf

wenn CentOS 6 installiert ist oder die Datei

/etc/tomcat/tomcat.conf

wenn CentOS 7 installiert ist.

In der Datei muss die Zeile verändert werden, die mit

JAVA_OPTS="-Xms512M -Xmx1024M"

beginnt. Tragen Sie bitte höhere Werte für den Parameter -Xmx. Wenn Ihr Server z.B. 4 GB RAM hat, ändern Sie die Zeile auf:

JAVA_OPTS="-Xms512M -Xmx3072M"

Der Wert muss kleiner sein als die Größe des RAMs auf dem Server.

2 Likes

Hallo Herr Urygin,

ich teste und berichte.

Beste Grüße
Stefanie Langer

Hallo Herr Urygin,

der gewünschte Erfolg bleibt aus. Das Verhalten ähnelt dem Thread Probleme beim Export von Informationsverbünden mit Prozess-Bausteinen. Haben Sie noch eine Idee?

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

Beste Grüße
Stefanie Langer

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.

1 Like