<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="classOutlineTemplate.xsl"?>
<courses>
  <class>
    <classInfo>
      <classTitle>Administering Apache Tomcat Training</classTitle>
      <softwareUsed>
        <software url="http://tomcat.apache.org/download-60.cgi" icon="../../images/softwareIcons/webLanguages/apache-tomcat.gif">Windows version of Apache Tomcat 4.1, 5.0, 5.5, 6.0, or later</software>
      </softwareUsed>
      <swVersions>
        <version>3</version>
      </swVersions>
      <levels>
        <level>1</level>
      </levels>
      <duration>
        <hours>7</hours>
        <days>2</days>
      </duration>
      <certification>
        <company url=""></company>
      </certification>
      <courseCode>code</courseCode>
      <courseDescription>Apache Tomcat is the most popular platform for deploying Java-based™ Web applications. In this two days course, attendees learn how to administer the Tomcat server, how to deploy applications on the server, and how to ensure the server's security.
        All attendees should be familiar with general principles of Web server administration and have some experience building Web applications.</courseDescription>
    </classInfo>
    <hwRequirements>
      <requirement>PCs should have at least 1GB of RAM </requirement>
      <requirement>10GB hard drive space</requirement>
    </hwRequirements>
    <swRequirements>
      <platformRequirements> </platformRequirements>
    </swRequirements>
    <preRequisites>
      <preReqClass />
      <preReq>All attendees should be familiar with general principles of Web server administration and have some experience building Web applications</preReq>
    </preRequisites>
    <performanceObjectives>
      <objective>To learn how to setup and configure Apache Tomcat</objective>
      <objective>To master deploying Java web applications to the Tomcat server</objective>
      <objective>To learn how to configure Tomcat valves for access logging, single sign-on, and access control</objective>
      <objective>To discover how to secure applications running on the Tomcat server</objective>
      <objective>To explore using Ant for deploying applications to the Tomcat server</objective>
      <objective>To master configuring Tomcat to run behind Apache using the mod_jk module</objective>
    </performanceObjectives>
    <supplementalMaterials>
      <book/>
      <website/>
    </supplementalMaterials>
    <courseContent>
      <lesson number="1">
        <lessonTitle>Introduction</lessonTitle>
        <topic>Overview of the Apache Software Foundation and the Jakarta Project </topic>
        <topic>Overview of Java EE as a platform </topic>
        <topic>Overview of the features and functionality specifically provided by Tomcat </topic>
        <lessonTime/>
      </lesson>
      <lesson number="2">
        <lessonTitle>Installing Tomcat </lessonTitle>
        <topic>Installing the Java Runtime Environment (JRE)</topic>
        <topic> Tweaking the JRE for performance</topic>
        <topic>Performing the actual Tomcat installation</topic>
        <lessonTime/>
      </lesson>
      <lesson number="3"> Examining the Tomcat installation directories
        <lessonTitle>LessonTitle</lessonTitle>
        <topic>bin </topic>
        <topic>conf </topic>
        <topic>common (Tomcat 5.5 and earlier)</topic>
        <topic>lib (Tomcat 6 and later)</topic>
        <topic>logs</topic>
        <topic>server (Tomcat 5.5 and earlier)</topic>
        <topic>shared (Tomcat 5.5 and earlier)</topic>
        <topic>temp</topic>
        <topic>webapps</topic>
        <topic>work</topic>
        <lessonTime/>
      </lesson>
      <lesson number="4">
        <lessonTitle>Configuring Tomcat</lessonTitle>
        <topic>server.xml (detailed walkthrough)</topic>
        <topic>web.xml</topic>
        <topic>context.xml</topic>
        <lessonTime/>
      </lesson>
      <lesson number="5">
        <lessonTitle>Tomcat Valves</lessonTitle>
        <topic>AccessLog and FastCommonAccessLog</topic>
        <topic>RequestFilterValve</topic>
        <topic>SingleSignOnValve (by request)</topic>
        <topic>RequestDumperValve (by request)</topic>
        <lessonTime/>
      </lesson>
      <lesson number="6">
        <lessonTitle>Memory management and JMX monitoring</lessonTitle>
        <topic>Understanding Java garbage collection </topic>
        <topic>Using JAVA_OPTS, JMX and JConsole to monitor and tune Tomcat memory usage </topic>
        <topic>Sizing Tomcat's JVM memory heap </topic>
        <topic>Using JMX and JConsole to configure Tomcat via Tomcat's MBeans </topic>
        <topic>Updating Tomcat's configuration via JMX "on the fly" without restarting Tomcat </topic>
        <topic>Load testing with JMeter </topic>
        <topic>Using Visual VM (new monitoring tool built into JDK 6)</topic>
        <lessonTime/>
      </lesson>
      <lesson number="7">
        <lessonTitle>Logging</lessonTitle>
        <topic>JULI logging</topic>
        <topic>log4j logging</topic>
        <topic>Understanding exceptions and thread dumps</topic>
        <lessonTime/>
      </lesson>
      <lesson number="8">
        <lessonTitle>Tomcat sessions and persistence</lessonTitle>
        <topic>Standard session behavior</topic>
        <topic>Disabling session saves across restarts (if desired)</topic>
        <topic>FileStore</topic>
        <topic>JDBCStore</topic>
        <topic>Using &lt; Cluster / &gt; to replicate sessions across Tomcat instances</topic>
        <lessonTime/>
      </lesson>
      <lesson number="9">
        <lessonTitle>Connecting databases with Tomcat applications</lessonTitle>
        <topic>Classic JDBC approach</topic>
        <topic>Better approach: JNDI resources </topic>
        <lessonTime/>
      </lesson>
      <lesson number="10">
        <lessonTitle>Security</lessonTitle>
        <topic>File system security </topic>
        <topic>Java security manager </topic>
        <topic>Realms </topic>
        <topic>SSL </topic>
        <lessonTime/>
      </lesson>
      <lesson number="11">
        <lessonTitle>Performance tuning strategies</lessonTitle>
        <topic>Additional JVM tuning tips</topic>
        <topic>Enabling parallel garbage collection</topic>
        <topic>Building native connectors</topic>
        <topic>Disabling/removing unneeded applications</topic>
        <topic>Tuning incoming connections and database connection pools</topic>
        <topic>Turning off Jasper development mode</topic>
        <topic>Precompiling JSPs</topic>
        <topic>Preloading servlets</topic>
        <lessonTime/>
      </lesson>
      <lesson number="12">
        <lessonTitle>Tomcat with Apache </lessonTitle>
        <topic>Introducing the mod_jk connector [mod_proxy_ajp taught in lieu of mod_jk upon request] </topic>
        <topic>Understanding Tomcat workers </topic>
        <topic>Connecting Tomcat with Apache </topic>
        <topic>Configuring SSL </topic>
        <topic>Tomcat load balancing with Apache </topic>
        <lessonTime/>
      </lesson>
      <lesson number="13">
        <lessonTitle>Tomcat Clustering</lessonTitle>
        <topic>Clustering model </topic>
        <topic>Working with Tomcat clustering</topic>
        <topic>Testing the cluster</topic>
        <lessonTime/>
      </lesson>
      <nextClass url="../../html/advanced.html">Apache Tomcat Advanced Topics</nextClass>
    </courseContent>
    <courseware>
      <bookTitle>Professional Apache Tomcat 6 </bookTitle>
      <publisher>publisher</publisher>
      <bookNumber/>
      <notes/>
      <author/>
    </courseware>
  </class>
</courses>
