Seitenhistorie
...
- '
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 als Dienst kein '
-server
' Flag. Deshalb ist es auch nicht angegeben. - Nein, ich weiß auch nicht, warum diese Änderung unter Windows kompliziert ist.
- '
Warnung |
---|
Die VM Parameter aus |
Warnung |
---|
Der Installer löscht z.Z. eine vorhandene |
Info | ||
---|---|---|
Eine Alternative zu dem Anlegen einer
|
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 "-Dcom.sun.management.jmxremote.port=30333#-Dcom.sun.management.jmxremote.ssl=false#-Dcom.sun.management.jmxremote.authenticate=false#-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#-XX:+PrintGCTimeStamps#-XX:+HeapDumpOnOutOfMemoryError#-XX:+TraceClassUnloading" --JvmMs=512512m --JvmMx=20482048m --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:
Weiterführende Informationen zum Tomcat als Windows Dienst sind im Howto zu finden.
Warnung |
---|
Wenn man Die 3 angegebenen JMX Parameter sind wichtig, um mit der Die gesetzten Java VM Parameter sollte man ausprobieren, bevor man den Service wie hier beschrieben verändert. Denn setzt man z.B. -Xmx zu groß, dann startet der Service nicht, kann aber auch nicht gestoppt werden, so dass ein Reboot fällig wird. |
Info |
---|
Die für Windows zusätzlich angegebenen JMX Parameter ( |
Info |
---|
Diese Art von Skript wird auch im Windows Installer verwendet, um die VM Parameter des Tomcat Service zu setzen (in |
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"/>
Warnung |
---|
Der Installer richtet HTTPS entsprechend in der Datei |
Eine Installation, mehrere Tomcat Instanzen
Dies kann man durch ein Trennen des Tomcats in CATALINA_HOME (die Installation) und CATALINA_BASE (einige Konfigurationsdateien u.a.) erreichen. Nähere Informationen finden sich hier.
WAR Deployment über den Manager
Die Tomcat Installation beinhaltet auch den Manager. Mit ihm lassen sich WAR Dateien direkt auf dem Tomcat deployen (auch von Remote!). Um den Manager nutzen zu können, muss man Datei tomcat-users.xml
in CATALINA_BASE/conf Verzeichnis anpassen. Hier ein Beispiel:
Codeblock |
---|
<tomcat-users> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <user password="nuclos" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script" username="nuclos"/> </tomcat-users> |
Ferner sind die Nuclos WARs so groß, dass in CATALINA_HOME/webapps/manager/WEB-INF/web.xml
der Tag max-file-size
(und evt. max-request-size
) angepasst werden muss.
Hot Deployment
Der Tomcat unterstützt mehrere Methoden des Hot Deployments, u.a. den Manager (s.o.) und autoDeploy, bei denen auf Änderungen im Dateisystem reagiert wird. Details finden sich hier und da.
Mit einer geschickten Wahl der Java VM Startparameter (und weiteren Maßnahmen) ist es möglich, für die Entwicklung das Hot Deployment Verhalten des Tomcats entscheidend zu verbessern.
Wiki Eintrag von Oliver: JS WebClient Entwicklungsumgebung
Details: https://ducquoc.wordpress.com/2010/11/06/eclipse-wtp-tomcat-hot-deploy/