Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Kommentar: Formatierung Scripte berichtigt

...

Codeblock
# Created by Thomas Pasch 
# see catalina.sh for explanation 
JAVA_OPTS="" 
CATALINA_OPTS="-server -ea -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+UseThreadPriorities -Xmx1236m -ms512m -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -XX:+TraceClassUnloading" 

# http://www.theserverside.com/discussions/thread.tss?thread_id=63241 
#-Xloggc:$CATALINA_HOME/logs/gc.log or Xloggc:%CATALINA_HOME%/logs/gc.log 
#-XX:+PrintHeapAtGC 
#-XX:+PrintGCDetails 
#-XX:+PrintGCTimeStamps 
#-XX:-HeapDumpOnOutOfMemoryError 
#-XX:+UseConcMarkSweepGC 
#-XX:-TraceClassUnloading 
# http://stackoverflow.com/questions/202502/appropriate-tomcat-5-5-start-up-parameters-to-tune-jvm-for-extremely-high-demand 
# http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136373.html 
# http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html 

...

Codeblock
rem Created by Thomas Pasch 
rem see catalina.sh for explanation 
set "JAVA_OPTS=" 
set "CATALINA_OPTS=-ea -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+UseThreadPriorities -Xmx1236m -Xms512m -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -XX:+TraceClassUnloading"

Windows Dienst/Service

Das Modifizieren des von Nuclos installierten Dienstes ist mit folgendem Windows Script möglich:

Codeblock
set CATALINA_HOME=C:\Nuclos3.6\tomcat\apache-tomcat-7.0.28 
set CATALINA_BASE=%CATALINA_HOME% 
set JAVA_HOME=C:\Program Files\Java\jre6 
C:\Nuclos3.6\bin\nuclosx64.exe //US//nuclos.nuclos --JvmOptions "-Dcatalina.base=%CATALINA_BASE%#-Dcatalina.home=%CATALINA_HOME%#-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed#-Djava.io.tmpdir=%CATALINA_BASE%\temp#-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager#-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties#-ea#-XX:PermSize=128M#-XX:MaxPermSize=256M#-XX:+UseThreadPriorities#-Xmx1236m#-Xms512m#-XX:+PrintGCTimeStamps#-XX:+HeapDumpOnOutOfMemoryError#-XX:+TraceClassUnloading" --StartMode=jvm --StopMode=jvm --Startup=manual --Classpath "%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_HOME%\bin\tomcat-juli.jar" --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop

Erläuterungen:

    • 'nuclos.nuclos' ist der Dienstnahme. Der Teil hinter dem Punkt ist der im Installer angegebene Nuclos Instanzname. Dieser kann bei Ihnen anders lauten.
    • Eine Alternative zu '--Startup=manual' ist '--Startup=auto'. Dann wird der Dienst beim Starten des Betriebssystems automatisch gestartet.
    • In dem Script sind die VM Start Parameter ab '-ea' beispielhaft. Die Parameter davor sind dagegen verpflichtend.
    • Die Java VM für Windows kennt kein '-server' Flag. Deshalb ist es auch nicht angegeben.
    • Nein, ich weiss auch nicht, warum diese Änderung unter Windows kompliziert ist.

Weiterführende Informationen zum Tomcat als Windows Dienst sind im Howto zu finden.

NIO Connector benutzen

Der NIO Connector bietet einige Feature (siehe AIO) und bessere Performance. In conf/server.xml statt:

 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

folgendes eintragen:

 <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" />

Weiter Informationen enthält eine Übersicht über die wichtigsten Tomcat Connectors.

Tomcat Native

Für optimale Performance in der Produktion. Unter Linux recht schnell gebaut mit:

./configure --with-ssl --with-apr=/usr/bin/apr-1-config --prefix=/home/tpasch2/apache-tomcat-7.0.29 --with-java-home=/usr/lib/jvm/jdk1.6.0_34
make
make install

Für die Benutzung in Eclipse/STS in der Tomcat 'Launch Configuration' im Reiter 'Environment' die Variable 'LD_LIBRARY_PATH' mit dem Wert '/home/tpasch2/apache-tomcat-7.0.29' (d.h. der --prefix Wert aus ./configure) eintragen.

Weiterführende Informationen Tomcat Native und Tomcat APR.

 

Tomcat Logging

Access Log

Das Tomcat Access Log ist konfigurierbar. Hier ist es u.A. möglich, die Verarbeitungszeit und die Länge der Antwort zu loggen. Details finden sich hier.

Erweitertes Logging durch Valves

Durch das Konfigurieren von Valves ist es möglich, sehr viele weitere Informationen (z.B. Informationen zum SSL Handshake, langsame Threads) zu loggen.

Erweitertes Logging durch Servlet Filter

Einige Servlet Filter werden direkt vom Tomcat zur Verfügung gestellt und können (durch eine Konfiguration in web.xml) verwendet werden, um z.B. die Länge der Anfrage in Bytes zu loggen. Eine Übersicht findet sich hier.

HTTPS, SSL/TLS

Zertifikat erstellen mit:

keytool -genkeypair -keystore .keystore -alias mykey -storepass storepw -keypass keypw

Dann in server.xml den entsprechenden Connector konfigurieren:

  <Connector SSLEnabled="true" clientAuth="false" keystoreFile="/home/tpasch2/sslcert/.keystore" keystorePass="storepw" keyPass="keypw" keyAlias="mykey" maxThreads="150" port="8443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/>