21 hours (usually 3 days including breaks)
Teaches attendees the fundamentals of administering Apache Tomcat and other Java EE environments.
The course is a mixture of lectures and hands-on exercises. Delegates learn by doing, with immediate opportunities to apply the material they learn to real-world problems.
Introduction to the Java Platform
- The JVM, JRE, and JDK
- Java SE versus EE
- Apache Tomcat as a lightweight servlet/JSP container, and how this differs from full-blown Java EE application servers such as WebLogic, WebSphere, JBoss, and GlassFish
Architecture of Applications installed to Tomcat
- Understanding classes versus JARs
- JNDI and datasources
- Resources that your applications may call on other servers (web services, EJBs, etc.)
- Installing the Java Runtime Environment (JRE)
- Tweaking the JRE for performance
- Performing the actual Tomcat installation
Examining the Tomcat installation directories
- server.xml (detailed walkthrough)
Deploying Java EE Applications
- Packaging JARs for deployment to Tomcat
- Packaging WARs for deployment to Tomcat
- Application server-neutral configuration versus application server-specific configuration
- Overview of EARs and other archive types not supported by Tomcat, but supported by other Java EE application servers
- Versioning Java EE applications
- Managing the deployment of updated applications
- AccessLog and FastCommonAccessLog
- SingleSignOnValve (by request)
- RequestDumperValve (by request)
Memory management and JMX monitoring
- Understanding Java garbage collection
- Using JAVA_OPTS, JMX and JConsole to monitor and tune Tomcat memory usage
- Sizing Tomcat's JVM memory heap
- Using JMX and JConsole to configure Tomcat via Tomcat's MBeans
- Updating Tomcat's configuration via JMX "on the fly" without restarting Tomcat
- Load testing with JMeter
- Using VisualVM (new monitoring tool built into JDK 6) and PSI Probe
- Controlling JMX MBeans via Ant
Logging and Troubleshooting
- JULI logging
- log4j logging
- Understanding exceptions and thread dumps
- Troubleshooting errors that occur in Tomcat
- Troubleshooting errors generated by your deployed applications
- Troubleshooting strategies applicable to application servers other than tomcat
Connecting databases with Tomcat applications
- Classic JDBC approach
- Better approach: JNDI resources
- Setting up and monitoring database connection pools
- File system security
- Java security manager
- Realms, authentication, and authorization
Java VM and Tomcat Performance tuning strategies
- Additional JVM tuning tips
- Enabling parallel garbage collection
- Building native connectors
- Disabling/removing unneeded applications
- Tuning incoming connections and database connection pools
- Turning off Jasper development mode
- Precompiling JSPs
- Preloading servlets
- Application-specific tuning suggestions
- Tuning levers available in other application servers
The World Beyond Tomcat: Understanding Java EE Applications
- Explanation of the Java EE APIs not supported by Tomcat: EJB, JMS, and many others
- 3rd party application frameworks overview (what they are and what administrators should know): Spring, Struts 1/Struts 2, JSF (including a discussion of ICEfaces, RichFaces, etc.)
- Data tier frameworks and what administrators should know (Hibernate, JPA, etc.)
- Features offered by WebLogic, WebSphere, and JBoss that are not found in Tomcat
Tomcat Other Features
- Memory leak prevention and detection
- Servlet 3.0, JSP 2.2, and EL 2.2 support (and the practical implications of this for Tomcat admins)
- Cross-site request forgery prevention (and how to configure)
- How Tomcat 7's new session management features prevent session fixation attacks
- Alias support (which allow static content to be stored outside the WAR file)
Running Tomcat behind Apache httpd or IIS [this section would be taught using your web server and connector module of choice]
- Why run Tomcat behind Apache httpd or IIS?
- Installing mod_jk (Apache or Tomcat) or mod_proxy_ajp and mod_proxy_balancer (Apache 2.2 or later only)
- Proxying traffic to Tomcat via AJP
- Monitoring the status of your web server's connection to Tomcat
- Load balancing Tomcat via mod_jk or mod_proxy_balancer
- Configuring mod_jk (in Apache or IIS) or mod_proxy_balancer (Apache 2.2 or later only) as a load balancer
- Hardware load balancing as an alternative to software load balancing
- Sticky sessions
- Configuring a shared session back-end
- FileStore/JDBCStore (older approach, generally not recommended)
- Using the <Cluster> tag
- Configuring the application to be distributable
- Setting up and testing failover
I mostly was benefit from lots of information.
I really enjoyed the numerous topics / covered spectrum.
Trainer knowledge about the matter. Exercises done along the training. Trainer was absolutely friendly and approachable.
Jorge Peinado Prado
The trainers deep understanding of the subject matter.
I was benefit from the materials, labs and extensive knowledge shown by the trainer.
I liked it was interesting with lot of hot subject, absolutely can understand better the product.
The training was very relevant to our work. And provided us with detailed overview and hands-on experience with Apache Tomcat technology.
The content of the course is good. It covers most of the important topics which we use in our day to day activities.
That the trainer meets the expectations. That the trainer is knowledgeable, expert and fast.
Most I liked Folios fantastic skills - knowledge of Tomcat, ability to structure the sessions and to explain the subjects.