SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Kontexte und ihr
  Deployment
Themenübersicht "Kontexte und ihr Deployment"




               Kontexte repräsentieren eine bereitgestellte Anwendung
               Jeder Kontext besitzt einen XML-Descriptor mit Einstellungen
               Tomcat nutzt ausschl. interne Kopien dieser Kontext-Descriptoren!
               Vor dem Deployment müssen alle Ressourcen bereitstehen
               Tomcat erlaubt Archiv- und Exploded-Contexte
               Tomcat erlaubt statisches und dynamisches Deployment
               Die Tools für das Deployment sind vielfältig:
               ANT, Maven, Manager-Anwendung, Tomcat-Client-Deployer
               Hosts ermöglichen Deployment-bezogene Einstellungen
               Valves bieten standardisierte technische Aspekt-Funktionalität



Präsentation "Apache Tomcat 6/7 Administration"   © Oliver P. Schell 2011   www.schellsoft.de   25
Kontexte



               Context = Tomcat-Web-Anwendung inclusive Metadaten
               Jeder Context besitzt einen Descriptor:
                • XML-File mit Tomcat-spezifischen Konfigurationen der Applikation
                • Falls der Context-Descriptor fehlt, verwendet Tomcat Standard-Einstellungen
                • Frühere Tomcat-Versionen integrierten den Descriptor in die "$CATALINA_BASE/conf/
                   server.xml"
                   (dies ist nun "discouraged", funktioniert jedoch noch immer!)

               Die Locations für Context-Descriptoren sind vielseitig:
                • In einem <Host>-Element der "$CATALINA_BASE/conf/server.xml"
                • Standard-Settings für alle Anwendungen in
                  "$CATALINA_BASE/conf/context.xml"
                • Standard-Settings für alle Anwendungen eines Hosts in "$CATALINA_BASE/conf/
                  [enginename]/[hostname]/context.xml.default"
                • Standard-Settings für eine Anwendung eines Hosts in "$CATALINA_BASE/conf/[enginename]/
                  [hostname]/[webappname].xml"
                • Settings, die in die Anwendung verpackt wurden:
                   "$CATALINA_BASE/webapps/[webappname]/META-INF/context.xml"



Präsentation "Apache Tomcat 6/7 Administration"    © Oliver P. Schell 2011         www.schellsoft.de   26
Allgemeine Attribute eines Contexts


               Die Attribute des <Context>-Elements:
                • Aufrufe auf den Context für Monitorings um n Sekunden verzögern?
                   • backgroundProcessorDelay           (-1)
                • Die Implementationsklasse:
                   • className        (org.apache.catalina.core.StandardContext)
                • Soll der Server Session-IDs per Cookie versenden?
                   • cookies       (true)
                • Darf "context.getContext( String )" einen Request-Dispatcher zu allen Anwendungen dieses
                   Virtual-Hosts liefern?
                   • crossContext          (false)
                • Pfad zu Dateien der Anwendung, relativ zur "appBase" des Virtual-Hosts:
                   (nicht notwendig im Falle einer "META-INF/context.xml")
                   • docBase       (WAR-Ordner/-File)
                • Dürfen Einstellungen des Standard-Context überschrieben werden?
                   • override        (false)
                • Container-Servlets und somit seinen Class-Loader zu benutzen:
                   • privileged         (false)
                • Redeployment bei Änderungen an Class- oder JAR-Files?
                   • reloadable         (false)
                • Session-Cookies nur auf HTTP-Verbindungen verwenden:
                   • useHttpOnly
Präsentation "Apache Tomcat 6/7 Administration"         © Oliver P. Schell 2011   www.schellsoft.de   27
Weitere Attribute der Standard-Implementation



               Die Attribute der Standard-Kontext-Implementation:
                • Erlaubt Verknüpfungen aus dem Projekt zu externen Ressourcen:*
                   • allowLinking          (false)
                • Verhindert das Sperren von JARs (weniger performant):
                   • antiJARLocking               (false)
                • Verhindert das Sperren von Ressourcen (weniger performant):
                   • antiResourceLocking               (false)
                • Größe des Cache für statische Ressourcen in KB:
                   • cacheMaxSize          (10240)
                • Maximale Größe für statische Ressourcen im Cache in KB:
                   • cacheObjectMaxSize               (512)
                • Intervall zur Revalidierung der Cache-Inhalte in Millisekunden:
                   • cacheTTL        (5000)
                • (De)Aktiviert das Caching statischer Ressourcen:
                   • cachingAllowed               (true)
                • (De)Aktiviert die Case-Sensitivity für Dateinamen:*
                   • caseSensitive           (true)


                •*  Änderung verursacht Sicherheitsprobleme auf Betriebssystemen, die keine case-sensitiven
                   Dateinamen unterstützen!


Präsentation "Apache Tomcat 6/7 Administration"               © Oliver P. Schell 2011   www.schellsoft.de   28
Weitere Attribute der Standard-Implementation




               Die Attribute der Standard-Kontext-Implementation:
                • Sollen TLDs bei Anwendungsstart verarbeitet werden?
                   • processTLDs          (true)
                • Leitet Ausgaben auf System.out / System.err an den Context-Logger:
                   • swallowOutput           (false)
                • TLD-Prüfung Namespace-Aware setzen (weniger performant):
                   • tldNamespaceAware             (false)
                • Sollen TLDs bei Anwendungsstart validiert werden?
                   • tldValidation           (false)
                • Timeout für die Destroy-Phase von Servlets:
                   • unloadDelay          (false)
                • (De)Aktiviert das Entpacken von WARs:
                   • unpackWAR        (true)
                • (De)Aktiviert den lokalen JNDI-Tree der Komponente:
                   • useNaming        (true)
                • Pfad zu dem temporären Arbeitsverzeichnis:
                   • workDir       ("$CATALINA_BASE/work")




Präsentation "Apache Tomcat 6/7 Administration"          © Oliver P. Schell 2011   www.schellsoft.de   29
Typische kontextbezogene Einstellungen




               Access-Logs = zeilenweise organisierter Log-File:
                • Kann per Valve auf Ebene von Engines, Hosts oder Contexten erzeugt werden:
                   • <Context  …>
                        <Valve className="org.apache.catalina.valves.AccessLogValve"
                          prefix="localhost_access_log." suffix=".txt"
                          pattern="common"/>
                      </Context>

               Context-Init-Parameter = Startwerte für den Servlet-Context:
                • Üblicherweise werden diese Werte in der "WEB-INF/web.xml" angelegt:
                   • <context-param>
                        <param-name>companyName</param-name>
                        <param-value>My Company, Incorporated</param-value>
                      </context-param>
                • Alternative in "META-INF/context.xml":
                   (override erlaubt das Überschreiben gleichnamiger "web.xml"-Parameter)
                   • <Context  …>
                        <Parameter name="companyName" value="My Company, Incorporated"
                          override="false"/>
                      </Context>




Präsentation "Apache Tomcat 6/7 Administration"     © Oliver P. Schell 2011    www.schellsoft.de   30
Kontexte verwenden Ressourcen




               Ressourcen = technische Elemente des Servers:
                • Anwendungen können von Ressourcen abhängen:
                   (z.B. Data-Sources, JMS-Destinations, EJB-Proxies, !)

               ENC = Enterprise-Naming-Context:
                • Virtueller Namensdienst einer Komponente:
                • Der ENC wird über die Context-Konfiguration aufgebaut:
                   • <Context  …>
                        <Resource … />
                        <ResourceLink … />
                        <Ejb … />
                      </Context>

               Bibliotheken = JAR-Archive mit darin enthaltenen Java-Klassen:
                • Enthalten z.B. die Unterstützung für Struts, JSF, JDBC-Driver, !
                • Werden als Archive in "$CATALINA/lib" kopiert
                • Alternativ kann auch "$CATALINA/bin/setclasspath.bat" editiert werden:
                   • set    CLASSPATH=%JAVA_HOME%libtools.jar;libsmyLib.jar




Präsentation "Apache Tomcat 6/7 Administration"       © Oliver P. Schell 2011   www.schellsoft.de   31
Typische kontextbezogene Einstellungen



               JNDI-Init-Parameter = Startwerte im lokalen Komponenten-JNDI:
                • Üblicherweise werden diese Werte in der "WEB-INF/web.xml" angelegt:
                   • <env-entry>
                        <env-entry-name>maxExemptions</param-name>
                        <env-entry-value>10</env-entry-value>
                        <env-entry-type>java.lang.Integer</env-entry-type>
                      </env-entry>
                • Alternative in "META-INF/context.xml":
                   • <Context  …>
                        <Environment name="maxExemptions" value="10"
                          type="java.lang.Integer" override="false"/>
                      </Context>

               Lifecycle-Listener = Objekte, die den Context beobachten:
                • Üblicherweise werden diese Objekte in der "WEB-INF/web.xml" angelegt:
                   • <listener>
                        <listener-class>mycompany.mypackage.MyListener</listener-class>
                      </listener>
                • Für Tomcat muss "org.apache.catalina.LifecycleListener" implementiert werden:
                   • <Context  …>
                        <Listener className="mycompany.mypackage.MyListener" …>
                      </Context>



Präsentation "Apache Tomcat 6/7 Administration"     © Oliver P. Schell 2011   www.schellsoft.de   32
Allgemeines zum Thema Deployment




               Deployment = Installation einer Web-Anwendung:
                • Tomcat akzeptiert archivförmige und "explodierte" WAR-Komponenten
               Tomcat unterstützt 2 Deployment-Varianten:
                • Statisches Deployment                       " Applikation wird vor Tomcat-Start installiert
                • Dynamisches Deployment                      " Applikation wird zur Laufzeit (re-)installiert

               Tools zur Durchführung des Deployments:
                • Kopiervorgang im OS
                • Tomcat-Tasks für Build-Tools wie ANT oder Maven
                • Tomcat-Manager Web-Application
                • Monitoring-Tools wie Jopr oder Hyperic-HQ
               Bitte beachten Sie:
                • Tomcat besitzt einen dynamischen Client-Deployer (TCD) mit weiteren Features
                  (z.B. Kompilieren, Validieren und Packaging von Web-Anwendungen)
                • TCD ist nicht in Tomcat enthalten und muss separat heruntergeladen werden
                • Eine Kurzanleitung findet sich im Administration Guide, Kapitel 4

Präsentation "Apache Tomcat 6/7 Administration"        © Oliver P. Schell 2011           www.schellsoft.de       33
Deployment-Einstellungen eines Hosts




               Ein Deployment kopiert WAR-Dateien in den Host-"appBase":
                • Dieser besitzt daher eine Reihe von Deployment-Settings:
                   • <Host      appBase autoDeploy className deployOnStartup />

               Wichtige Attribute des Application-Deployers im Host:
                • Name dieses Hosts:
                   • name     (localhost)
                • Anwendungsverzeichnis dieses Hosts:
                   • appBase       ($CATALINA_BASE/webapps)
                • Deployt Anwendungen beim Startup:
                   • deployOnStartup              (true)
                • (De)Aktiviert das automatische Verarbeiten der "META-INF/context.xml":
                   • deployXML        (true)
                • (De)Aktiviert das automatische Entpacken von WARs:
                   • unpackWARs         (true)
                • Bestimmt das temporäre Arbeitsverzeichnis des Host:
                   • workDir       ($CATALINA_BASE/work)




Präsentation "Apache Tomcat 6/7 Administration"            © Oliver P. Schell 2011   www.schellsoft.de   34
Statisches Deployment




               Statisches Deployment =
               Installation von Anwendungen vor dem Server-Start
               Statisches Deployment wird in folgender Reihenfolge abgearbeitet:
                • Alle Standard-Context-Descriptoren werden deployt
                • Explodierte Web-Applications werden deployt
                     (sollte ein WAR-File neueren Datums existieren, so wird es entpackt)
                • WAR-Files werden deployt
               ACHTUNG FALLE!
               Bitte beachten Sie:
                • Sollte kein Context-Descriptor beigefügt sein, so werden Defaults genutzt
                • Context-Descriptoren werden nach "$CATALINA_BASE/conf/[enginename]/[hostname]/
                  [webappname].xml" kopiert
                • Das Copy-Feature funktioniert manchmal nicht
                   (alte [webappname].xml bleibt im conf-Ordner stehen – ärgerlich!)




Präsentation "Apache Tomcat 6/7 Administration"    © Oliver P. Schell 2011       www.schellsoft.de   35
Dynamisches Deployment




               Dynamisches Deployment =
               Installation von Anwendungen bei laufendem Server
               Insbesondere sind folgende Aktionen erlaubt:
                • (Re-)Deployment von WAR-Files durch Kopieren ins "appBase"
                • (Re-)Deployment von explodierten Applikationen durch Kopieren ins "appBase"
                • (Re-)Deployment einer Applikation durch Änderung der "/WEB-INF/web.xml"
                  (oder Änderung jeder anderen "WatchedResource")
                • (Re-)Deployment einer Applikation durch Änderung der "/META-INF/context.xml"
                • (Re-)Deployment einer Applikation durch Hinzufügen einer "context.xml" in
                  "$CATALINA_BASE/conf/[enginename]/[hostname]/"
                • Undeployment einer Applikation, wenn ihr "docBase" gelöscht wird
               Bitte beachten Sie:
                • Undeployments unter Windows erfordern Anti-Locking-Settings im <Context>
                • Das Application-Reloading kann jeweils über den <Loader> eines <Context> in der
                   "context.xml" konfiguriert werden




Präsentation "Apache Tomcat 6/7 Administration"    © Oliver P. Schell 2011    www.schellsoft.de     36
Weitere Valves



               Valves wirken wie Servlet-Filter
               auf Engine-, Host- oder Context-
               Ebene:
                • Sie sind kein Bestandteil der Java-EE!

               Tomcat besitzt einige vordefinierte Valve-Klassen:
                • Loggt Debug-Informationen über Requests:
                   • org.apache.catalina.valves.RequestDumperValve
                • Loggt Zugriffe von Clients in flexiblem Format:
                   • org.apache.catalina.valves.AccessLogValve
                • Loggt Zugriffe von Clients im Kurzformat für Produktivsysteme:
                   • org.apache.catalina.valves.FastCommonAccessLogValve
                • Filtert Requests auf Basis der Client-IP oder des Client-Hosts:
                   • org.apache.catalina.valves.RemoteAddrValve
                   • org.apache.catalina.valves.RemoteHostValve
                • Signt einen Client auf alle anderen Applikationen eines Hosts:
                   • org.apache.catalina.authenticator.SingleSignOn
                •!

Präsentation "Apache Tomcat 6/7 Administration"    © Oliver P. Schell 2011          www.schellsoft.de   37
URL-Parsing – wo konfiguriert man was?




Präsentation "Apache Tomcat 6/7 Administration"     © Oliver P. Schell 2011   www.schellsoft.de   38

Más contenido relacionado

La actualidad más candente

Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Ralf Sigmund
 
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudAOE
 
WildFly als Plattform moderner Enterprise-Anwendungen
WildFly als Plattform moderner Enterprise-AnwendungenWildFly als Plattform moderner Enterprise-Anwendungen
WildFly als Plattform moderner Enterprise-Anwendungengedoplan
 
Service Orchestrierung mit Apache Mesos
Service Orchestrierung mit Apache MesosService Orchestrierung mit Apache Mesos
Service Orchestrierung mit Apache MesosRalf Ernst
 
An Introduction to Ruby On Rails
An Introduction to Ruby On RailsAn Introduction to Ruby On Rails
An Introduction to Ruby On RailsJonathan Weiss
 
Flexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeFlexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeos890
 
Webanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnWebanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnRoman Roelofsen
 
Auszug Seminarunterlagen "Hibernate 3.x"
Auszug Seminarunterlagen "Hibernate 3.x"Auszug Seminarunterlagen "Hibernate 3.x"
Auszug Seminarunterlagen "Hibernate 3.x"schellsoft
 
Rex Linuxtag 2012
Rex Linuxtag 2012Rex Linuxtag 2012
Rex Linuxtag 2012inovex GmbH
 
Reporting mit Jasper Reports
Reporting mit Jasper ReportsReporting mit Jasper Reports
Reporting mit Jasper Reportsgedoplan
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit antroskakori
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...NETWAYS
 
Ausgewählte Performance Technologien
Ausgewählte Performance TechnologienAusgewählte Performance Technologien
Ausgewählte Performance Technologienoraclebudb
 

La actualidad más candente (17)

Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
 
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der Cloud
 
WildFly als Plattform moderner Enterprise-Anwendungen
WildFly als Plattform moderner Enterprise-AnwendungenWildFly als Plattform moderner Enterprise-Anwendungen
WildFly als Plattform moderner Enterprise-Anwendungen
 
Java EE 5
Java EE 5Java EE 5
Java EE 5
 
Service Orchestrierung mit Apache Mesos
Service Orchestrierung mit Apache MesosService Orchestrierung mit Apache Mesos
Service Orchestrierung mit Apache Mesos
 
An Introduction to Ruby On Rails
An Introduction to Ruby On RailsAn Introduction to Ruby On Rails
An Introduction to Ruby On Rails
 
Flexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeFlexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpike
 
Webanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnWebanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickeln
 
Auszug Seminarunterlagen "Hibernate 3.x"
Auszug Seminarunterlagen "Hibernate 3.x"Auszug Seminarunterlagen "Hibernate 3.x"
Auszug Seminarunterlagen "Hibernate 3.x"
 
Spring 2.0
Spring 2.0Spring 2.0
Spring 2.0
 
Rex Linuxtag 2012
Rex Linuxtag 2012Rex Linuxtag 2012
Rex Linuxtag 2012
 
Reporting mit Jasper Reports
Reporting mit Jasper ReportsReporting mit Jasper Reports
Reporting mit Jasper Reports
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit ant
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
 
Rack-Middleware
Rack-MiddlewareRack-Middleware
Rack-Middleware
 
Ausgewählte Performance Technologien
Ausgewählte Performance TechnologienAusgewählte Performance Technologien
Ausgewählte Performance Technologien
 

Destacado

Secuencia didáctica - Biodiversidad
Secuencia didáctica - BiodiversidadSecuencia didáctica - Biodiversidad
Secuencia didáctica - BiodiversidadLuis Alberto Ladner
 
Excel wortschatzliste einheit1
Excel wortschatzliste einheit1Excel wortschatzliste einheit1
Excel wortschatzliste einheit1mexal2000
 
10 Redenen Om Onze Interim Professionals In Te Huren
10 Redenen Om Onze Interim Professionals In Te Huren10 Redenen Om Onze Interim Professionals In Te Huren
10 Redenen Om Onze Interim Professionals In Te Hurenmikedejongh
 
Ganztagsschule von Thomas Höchst
Ganztagsschule von Thomas HöchstGanztagsschule von Thomas Höchst
Ganztagsschule von Thomas HöchstMacht Bildung
 
LVM Vertragsmanagement für Office365 und SharePoint
LVM Vertragsmanagement für Office365 und SharePointLVM Vertragsmanagement für Office365 und SharePoint
LVM Vertragsmanagement für Office365 und SharePointLocatech IT Solutions GmbH
 
PRÁCT4TP-OPERADORESMAT
PRÁCT4TP-OPERADORESMATPRÁCT4TP-OPERADORESMAT
PRÁCT4TP-OPERADORESMATaldomat07
 
Responsive Webdesign - Barcamp Hamburg 2012
Responsive Webdesign - Barcamp Hamburg 2012Responsive Webdesign - Barcamp Hamburg 2012
Responsive Webdesign - Barcamp Hamburg 2012Andreas Simon
 
Netcat con bactrack
Netcat con bactrackNetcat con bactrack
Netcat con bactrackluised139
 
Examenomi3 141008182031-conversion-gate02
Examenomi3 141008182031-conversion-gate02Examenomi3 141008182031-conversion-gate02
Examenomi3 141008182031-conversion-gate02Yanori Perez
 
Paisajes de ubrique
Paisajes de ubriquePaisajes de ubrique
Paisajes de ubriqueMegaPablo
 
OAI Object Reuse and Exchange für OA-Netzwerk
OAI Object Reuse and Exchange für OA-NetzwerkOAI Object Reuse and Exchange für OA-Netzwerk
OAI Object Reuse and Exchange für OA-NetzwerkJIwanowa
 

Destacado (20)

Secuencia didáctica - Biodiversidad
Secuencia didáctica - BiodiversidadSecuencia didáctica - Biodiversidad
Secuencia didáctica - Biodiversidad
 
Excel wortschatzliste einheit1
Excel wortschatzliste einheit1Excel wortschatzliste einheit1
Excel wortschatzliste einheit1
 
10 Redenen Om Onze Interim Professionals In Te Huren
10 Redenen Om Onze Interim Professionals In Te Huren10 Redenen Om Onze Interim Professionals In Te Huren
10 Redenen Om Onze Interim Professionals In Te Huren
 
Ganztagsschule von Thomas Höchst
Ganztagsschule von Thomas HöchstGanztagsschule von Thomas Höchst
Ganztagsschule von Thomas Höchst
 
Fortaleza texto (2)
Fortaleza texto (2)Fortaleza texto (2)
Fortaleza texto (2)
 
LVM Vertragsmanagement für Office365 und SharePoint
LVM Vertragsmanagement für Office365 und SharePointLVM Vertragsmanagement für Office365 und SharePoint
LVM Vertragsmanagement für Office365 und SharePoint
 
PRÁCT4TP-OPERADORESMAT
PRÁCT4TP-OPERADORESMATPRÁCT4TP-OPERADORESMAT
PRÁCT4TP-OPERADORESMAT
 
Refugio
RefugioRefugio
Refugio
 
Responsive Webdesign - Barcamp Hamburg 2012
Responsive Webdesign - Barcamp Hamburg 2012Responsive Webdesign - Barcamp Hamburg 2012
Responsive Webdesign - Barcamp Hamburg 2012
 
Netcat con bactrack
Netcat con bactrackNetcat con bactrack
Netcat con bactrack
 
4
44
4
 
Veneconomía s03124s
Veneconomía s03124sVeneconomía s03124s
Veneconomía s03124s
 
Configuraciones
ConfiguracionesConfiguraciones
Configuraciones
 
Ben 10
Ben 10Ben 10
Ben 10
 
Examenomi3 141008182031-conversion-gate02
Examenomi3 141008182031-conversion-gate02Examenomi3 141008182031-conversion-gate02
Examenomi3 141008182031-conversion-gate02
 
Paisajes de ubrique
Paisajes de ubriquePaisajes de ubrique
Paisajes de ubrique
 
OAI Object Reuse and Exchange für OA-Netzwerk
OAI Object Reuse and Exchange für OA-NetzwerkOAI Object Reuse and Exchange für OA-Netzwerk
OAI Object Reuse and Exchange für OA-Netzwerk
 
Catalogo 1.1
Catalogo 1.1Catalogo 1.1
Catalogo 1.1
 
Power
PowerPower
Power
 
Documentación
DocumentaciónDocumentación
Documentación
 

Similar a Auszug Seminarunterlagen "Tomcat 6.x"

Sesam (APEX) Öffne Dich
Sesam (APEX) Öffne DichSesam (APEX) Öffne Dich
Sesam (APEX) Öffne DichOliver Lemm
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondUlrich Krause
 
Best Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationBest Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationSamuel Zürcher
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!OPEN KNOWLEDGE GmbH
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenICS User Group
 
Apex on the Rocks - Hochverfügbarkeit
Apex on the Rocks - HochverfügbarkeitApex on the Rocks - Hochverfügbarkeit
Apex on the Rocks - HochverfügbarkeitStefan Witwicki
 
Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)Chris Michael Klinger
 
MT AG: Sesam oeffne Dich
MT AG: Sesam oeffne DichMT AG: Sesam oeffne Dich
MT AG: Sesam oeffne DichMT AG
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdAOE
 
Caching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesCaching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesMichael Plöd
 
Varnish PHP Unconference Hamburg 2012
Varnish PHP Unconference Hamburg 2012Varnish PHP Unconference Hamburg 2012
Varnish PHP Unconference Hamburg 2012Florian Holzhauer
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17remigius-stalder
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershellCreasoft AG
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrants0enke
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatengeKarin Patenge
 

Similar a Auszug Seminarunterlagen "Tomcat 6.x" (20)

Sesam (APEX) Öffne Dich
Sesam (APEX) Öffne DichSesam (APEX) Öffne Dich
Sesam (APEX) Öffne Dich
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
Best Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationBest Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL Installation
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
 
Node.js
Node.jsNode.js
Node.js
 
Apex on the Rocks - Hochverfügbarkeit
Apex on the Rocks - HochverfügbarkeitApex on the Rocks - Hochverfügbarkeit
Apex on the Rocks - Hochverfügbarkeit
 
Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)
 
MT AG: Sesam oeffne Dich
MT AG: Sesam oeffne DichMT AG: Sesam oeffne Dich
MT AG: Sesam oeffne Dich
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
 
Caching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesCaching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best Practices
 
Varnish PHP Unconference Hamburg 2012
Varnish PHP Unconference Hamburg 2012Varnish PHP Unconference Hamburg 2012
Varnish PHP Unconference Hamburg 2012
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershell
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 

Auszug Seminarunterlagen "Tomcat 6.x"

  • 1. Kontexte und ihr Deployment
  • 2. Themenübersicht "Kontexte und ihr Deployment" Kontexte repräsentieren eine bereitgestellte Anwendung Jeder Kontext besitzt einen XML-Descriptor mit Einstellungen Tomcat nutzt ausschl. interne Kopien dieser Kontext-Descriptoren! Vor dem Deployment müssen alle Ressourcen bereitstehen Tomcat erlaubt Archiv- und Exploded-Contexte Tomcat erlaubt statisches und dynamisches Deployment Die Tools für das Deployment sind vielfältig: ANT, Maven, Manager-Anwendung, Tomcat-Client-Deployer Hosts ermöglichen Deployment-bezogene Einstellungen Valves bieten standardisierte technische Aspekt-Funktionalität Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 25
  • 3. Kontexte Context = Tomcat-Web-Anwendung inclusive Metadaten Jeder Context besitzt einen Descriptor: • XML-File mit Tomcat-spezifischen Konfigurationen der Applikation • Falls der Context-Descriptor fehlt, verwendet Tomcat Standard-Einstellungen • Frühere Tomcat-Versionen integrierten den Descriptor in die "$CATALINA_BASE/conf/ server.xml" (dies ist nun "discouraged", funktioniert jedoch noch immer!) Die Locations für Context-Descriptoren sind vielseitig: • In einem <Host>-Element der "$CATALINA_BASE/conf/server.xml" • Standard-Settings für alle Anwendungen in "$CATALINA_BASE/conf/context.xml" • Standard-Settings für alle Anwendungen eines Hosts in "$CATALINA_BASE/conf/ [enginename]/[hostname]/context.xml.default" • Standard-Settings für eine Anwendung eines Hosts in "$CATALINA_BASE/conf/[enginename]/ [hostname]/[webappname].xml" • Settings, die in die Anwendung verpackt wurden: "$CATALINA_BASE/webapps/[webappname]/META-INF/context.xml" Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 26
  • 4. Allgemeine Attribute eines Contexts Die Attribute des <Context>-Elements: • Aufrufe auf den Context für Monitorings um n Sekunden verzögern? • backgroundProcessorDelay (-1) • Die Implementationsklasse: • className (org.apache.catalina.core.StandardContext) • Soll der Server Session-IDs per Cookie versenden? • cookies (true) • Darf "context.getContext( String )" einen Request-Dispatcher zu allen Anwendungen dieses Virtual-Hosts liefern? • crossContext (false) • Pfad zu Dateien der Anwendung, relativ zur "appBase" des Virtual-Hosts: (nicht notwendig im Falle einer "META-INF/context.xml") • docBase (WAR-Ordner/-File) • Dürfen Einstellungen des Standard-Context überschrieben werden? • override (false) • Container-Servlets und somit seinen Class-Loader zu benutzen: • privileged (false) • Redeployment bei Änderungen an Class- oder JAR-Files? • reloadable (false) • Session-Cookies nur auf HTTP-Verbindungen verwenden: • useHttpOnly Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 27
  • 5. Weitere Attribute der Standard-Implementation Die Attribute der Standard-Kontext-Implementation: • Erlaubt Verknüpfungen aus dem Projekt zu externen Ressourcen:* • allowLinking (false) • Verhindert das Sperren von JARs (weniger performant): • antiJARLocking (false) • Verhindert das Sperren von Ressourcen (weniger performant): • antiResourceLocking (false) • Größe des Cache für statische Ressourcen in KB: • cacheMaxSize (10240) • Maximale Größe für statische Ressourcen im Cache in KB: • cacheObjectMaxSize (512) • Intervall zur Revalidierung der Cache-Inhalte in Millisekunden: • cacheTTL (5000) • (De)Aktiviert das Caching statischer Ressourcen: • cachingAllowed (true) • (De)Aktiviert die Case-Sensitivity für Dateinamen:* • caseSensitive (true) •* Änderung verursacht Sicherheitsprobleme auf Betriebssystemen, die keine case-sensitiven Dateinamen unterstützen! Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 28
  • 6. Weitere Attribute der Standard-Implementation Die Attribute der Standard-Kontext-Implementation: • Sollen TLDs bei Anwendungsstart verarbeitet werden? • processTLDs (true) • Leitet Ausgaben auf System.out / System.err an den Context-Logger: • swallowOutput (false) • TLD-Prüfung Namespace-Aware setzen (weniger performant): • tldNamespaceAware (false) • Sollen TLDs bei Anwendungsstart validiert werden? • tldValidation (false) • Timeout für die Destroy-Phase von Servlets: • unloadDelay (false) • (De)Aktiviert das Entpacken von WARs: • unpackWAR (true) • (De)Aktiviert den lokalen JNDI-Tree der Komponente: • useNaming (true) • Pfad zu dem temporären Arbeitsverzeichnis: • workDir ("$CATALINA_BASE/work") Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 29
  • 7. Typische kontextbezogene Einstellungen Access-Logs = zeilenweise organisierter Log-File: • Kann per Valve auf Ebene von Engines, Hosts oder Contexten erzeugt werden: • <Context …> <Valve className="org.apache.catalina.valves.AccessLogValve" prefix="localhost_access_log." suffix=".txt" pattern="common"/> </Context> Context-Init-Parameter = Startwerte für den Servlet-Context: • Üblicherweise werden diese Werte in der "WEB-INF/web.xml" angelegt: • <context-param> <param-name>companyName</param-name> <param-value>My Company, Incorporated</param-value> </context-param> • Alternative in "META-INF/context.xml": (override erlaubt das Überschreiben gleichnamiger "web.xml"-Parameter) • <Context …> <Parameter name="companyName" value="My Company, Incorporated" override="false"/> </Context> Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 30
  • 8. Kontexte verwenden Ressourcen Ressourcen = technische Elemente des Servers: • Anwendungen können von Ressourcen abhängen: (z.B. Data-Sources, JMS-Destinations, EJB-Proxies, !) ENC = Enterprise-Naming-Context: • Virtueller Namensdienst einer Komponente: • Der ENC wird über die Context-Konfiguration aufgebaut: • <Context …> <Resource … /> <ResourceLink … /> <Ejb … /> </Context> Bibliotheken = JAR-Archive mit darin enthaltenen Java-Klassen: • Enthalten z.B. die Unterstützung für Struts, JSF, JDBC-Driver, ! • Werden als Archive in "$CATALINA/lib" kopiert • Alternativ kann auch "$CATALINA/bin/setclasspath.bat" editiert werden: • set CLASSPATH=%JAVA_HOME%libtools.jar;libsmyLib.jar Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 31
  • 9. Typische kontextbezogene Einstellungen JNDI-Init-Parameter = Startwerte im lokalen Komponenten-JNDI: • Üblicherweise werden diese Werte in der "WEB-INF/web.xml" angelegt: • <env-entry> <env-entry-name>maxExemptions</param-name> <env-entry-value>10</env-entry-value> <env-entry-type>java.lang.Integer</env-entry-type> </env-entry> • Alternative in "META-INF/context.xml": • <Context …> <Environment name="maxExemptions" value="10" type="java.lang.Integer" override="false"/> </Context> Lifecycle-Listener = Objekte, die den Context beobachten: • Üblicherweise werden diese Objekte in der "WEB-INF/web.xml" angelegt: • <listener> <listener-class>mycompany.mypackage.MyListener</listener-class> </listener> • Für Tomcat muss "org.apache.catalina.LifecycleListener" implementiert werden: • <Context …> <Listener className="mycompany.mypackage.MyListener" …> </Context> Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 32
  • 10. Allgemeines zum Thema Deployment Deployment = Installation einer Web-Anwendung: • Tomcat akzeptiert archivförmige und "explodierte" WAR-Komponenten Tomcat unterstützt 2 Deployment-Varianten: • Statisches Deployment " Applikation wird vor Tomcat-Start installiert • Dynamisches Deployment " Applikation wird zur Laufzeit (re-)installiert Tools zur Durchführung des Deployments: • Kopiervorgang im OS • Tomcat-Tasks für Build-Tools wie ANT oder Maven • Tomcat-Manager Web-Application • Monitoring-Tools wie Jopr oder Hyperic-HQ Bitte beachten Sie: • Tomcat besitzt einen dynamischen Client-Deployer (TCD) mit weiteren Features (z.B. Kompilieren, Validieren und Packaging von Web-Anwendungen) • TCD ist nicht in Tomcat enthalten und muss separat heruntergeladen werden • Eine Kurzanleitung findet sich im Administration Guide, Kapitel 4 Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 33
  • 11. Deployment-Einstellungen eines Hosts Ein Deployment kopiert WAR-Dateien in den Host-"appBase": • Dieser besitzt daher eine Reihe von Deployment-Settings: • <Host appBase autoDeploy className deployOnStartup /> Wichtige Attribute des Application-Deployers im Host: • Name dieses Hosts: • name (localhost) • Anwendungsverzeichnis dieses Hosts: • appBase ($CATALINA_BASE/webapps) • Deployt Anwendungen beim Startup: • deployOnStartup (true) • (De)Aktiviert das automatische Verarbeiten der "META-INF/context.xml": • deployXML (true) • (De)Aktiviert das automatische Entpacken von WARs: • unpackWARs (true) • Bestimmt das temporäre Arbeitsverzeichnis des Host: • workDir ($CATALINA_BASE/work) Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 34
  • 12. Statisches Deployment Statisches Deployment = Installation von Anwendungen vor dem Server-Start Statisches Deployment wird in folgender Reihenfolge abgearbeitet: • Alle Standard-Context-Descriptoren werden deployt • Explodierte Web-Applications werden deployt (sollte ein WAR-File neueren Datums existieren, so wird es entpackt) • WAR-Files werden deployt ACHTUNG FALLE! Bitte beachten Sie: • Sollte kein Context-Descriptor beigefügt sein, so werden Defaults genutzt • Context-Descriptoren werden nach "$CATALINA_BASE/conf/[enginename]/[hostname]/ [webappname].xml" kopiert • Das Copy-Feature funktioniert manchmal nicht (alte [webappname].xml bleibt im conf-Ordner stehen – ärgerlich!) Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 35
  • 13. Dynamisches Deployment Dynamisches Deployment = Installation von Anwendungen bei laufendem Server Insbesondere sind folgende Aktionen erlaubt: • (Re-)Deployment von WAR-Files durch Kopieren ins "appBase" • (Re-)Deployment von explodierten Applikationen durch Kopieren ins "appBase" • (Re-)Deployment einer Applikation durch Änderung der "/WEB-INF/web.xml" (oder Änderung jeder anderen "WatchedResource") • (Re-)Deployment einer Applikation durch Änderung der "/META-INF/context.xml" • (Re-)Deployment einer Applikation durch Hinzufügen einer "context.xml" in "$CATALINA_BASE/conf/[enginename]/[hostname]/" • Undeployment einer Applikation, wenn ihr "docBase" gelöscht wird Bitte beachten Sie: • Undeployments unter Windows erfordern Anti-Locking-Settings im <Context> • Das Application-Reloading kann jeweils über den <Loader> eines <Context> in der "context.xml" konfiguriert werden Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 36
  • 14. Weitere Valves Valves wirken wie Servlet-Filter auf Engine-, Host- oder Context- Ebene: • Sie sind kein Bestandteil der Java-EE! Tomcat besitzt einige vordefinierte Valve-Klassen: • Loggt Debug-Informationen über Requests: • org.apache.catalina.valves.RequestDumperValve • Loggt Zugriffe von Clients in flexiblem Format: • org.apache.catalina.valves.AccessLogValve • Loggt Zugriffe von Clients im Kurzformat für Produktivsysteme: • org.apache.catalina.valves.FastCommonAccessLogValve • Filtert Requests auf Basis der Client-IP oder des Client-Hosts: • org.apache.catalina.valves.RemoteAddrValve • org.apache.catalina.valves.RemoteHostValve • Signt einen Client auf alle anderen Applikationen eines Hosts: • org.apache.catalina.authenticator.SingleSignOn •! Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 37
  • 15. URL-Parsing – wo konfiguriert man was? Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 38