Resin Admin Training Course
Course Summary
Caucho Resin Administration covers the details of installing and configuring the Resin Java application server.
Students will learn the details of configuring the Resin server, Resin clusters, and JavaEE applications. The course will go from the initial steps of installing and configuring a Resin server to deploying and monitoring applications. Along the way, students will learn to configure database connectivity, set up logging, and map the application to different web paths and virtual hosts.
Advanced topics such as clustering, reliability, performance tuning, security, and using Resin in a unit testing environment will also be covered in detail, with best practices being discussed for each.
[top] Duration
3 days.
[top] Objectives
Upon completion of this course, you will be able to:
- Install and setup Resin on both Windows and UNIX-type environments
- Navigate Resin's directory structure
- Understand Resin architecture and configuration files
- Deploy, support, and troubleshoot Java applications on Resin
- Understand web application structure and configuration: web.xml
- Configure database connectivity for web applications
- Monitor and profile applications using the administration application
- Secure Resin and applications running on it
- Set up Resin for SSL
- Tune Resin's performance
- Improve the reliability of applications via Resin configuration
- Set up Resin clustering and load balancing
[top] Audience
This course is for web/application server administrators who need to be able to install, configure, run, and tune the Resin Java Application Server.
[top] Prerequisites
To get the most benefit from this course, you should be familiar with the basic principles of web/application server administration.
Additionally, prior exposure to any of these concepts can be helpful:
- HTTP protocol (i.e., the stateless nature of HTTP, the need for sessions, HTTP methods, SSL, etc.)
- Java environments (e.g., memory settings, automatic garbage collection)
- Basic concepts behind Java Web Applications
*Please note that all these concepts are covered in the class.
[top] Outline
Caucho Resin Overview
- Brief history of Caucho
- Resin current features overview
- Brief overview of Resin versions
- Resin Licensing (Open Source versus Professional)
- Comparison with other application servers
Installing Resin
- Download and install a JVM
- Download Resin
- Installing on UNIX
- Building the JNI libraries for UNIX
- Installing on Windows
- Starting Resin from the command line
- Setting up Resin to run at system start
Resin Directories
- Resin Directory Structure
- Web Application Directory Structure
- Deploying HTML and JSP Pages
- Lab: Deploying a Web App
Architecture and Configuration Resin
- Overview of Resin architecture
- How Resin's configuration relates to its architecture
- <resin>
- <cluster>
- <server>
- <host>
- <web-app>
- Using defaults
- Understanding Resin's classloaders
- The Resin watchdog
- Lab: Setting up virtual hosts
Deploying Web Applications
- Web Application Administration
- .war files
- Deploying Web Applications
- Developing in place
- Lab: Deploying a Web Application statically
- Lab: Deploying a Web Application dynamically
- Viewing the Resin administration application (/resin-admin)
- Setting up an administration password
- Managing deployed applications from /resin-admin
Java Web Applications
- Overview of the Java EE 6 Web Profile
- Servlet 3.0
- Lifecycle of a Servlet
- The Directory Structure of a Web App
- web.xml configuration file
- The <web-app/> Element
- Mapping a Servlet to a URL
- A Sample web.xml file
- Simplified resin-web.xml sytax
- Contexts and Dependency Injection (CDI)
- Rewrite dispatch
- Lab: Adding a rewrite dispatch rule to resin-web.xml
Database Connectivity
- Overview of JDBC
- JDBC Drivers
- Configuring Resin to Connect to a Database
- Connection Pools
- Download and Install MySQL
- Create a Database in MySQL
- Download and Deploy a JDBC Driver
- Defining a DataSource in Resin
- Accessing a DataSource via JNDI
- Accessing a DataSource via CDI
- Debugging connections with <spy/>
- Pinging for reliability
- Backup drivers
- Lab: JDBC Connections
The Resin Administration application
- Resin Administration application overview
- Getting a quick deployment summary
- Viewing application statuses
- Verifying configuration
- Accessing JMX
- Analysis of the Java Heap
- Checking proxy cache statistics
- Viewing cluster connectivity
- Creating graphs for a custom metric profile
- Postmortem analysis of a rebooted server
- Profiling application performance
- Gathering thread dumps
- Lab: Debugging a problem application
- Java Management Extensions (JMX) on Resin
Resin Security
- Running without root privileges on UNIX
- FORM-based authentication
- Resin Authenticator architecture
- Single Signon
- Security constraints
- Lab: Creating a single signon form
- Configuring Resin for SSL
- OpenSSL versus JSSE
- Requiring SSL in applications
- Lab: Setting up SSL
Tuning Resin
- Hotspots: the usual suspects
- Java memory overview
- Using the Resin administration profile and memory pages
- JVM arguments
- Threads
- Caching
- Keepalive
- GzipFilter
- Lab: Tuning for a sample application
Improving Reliability
- Basic Logging
- Log handlers
- Automatically emailing severe logs
- Ping pages
- Automatic memory-based restart
- Automatic CPU-based restart
- Lab: Setting up a ping page
Setting up a Resin Cluster
- Clustering overview
- Adding servers statically
- Adding servers dynamically
- Monitoring servers
- Load balancing setup
- Load balancing algorithms
- Retrying POSTs
- Distributed Sessions
- Sticky sessions
- Lab: Setting up a cluster
Advanced Topics
- Embedding
- Using Resin in unit testing
- Scheduled tasks
[top] Student Testimonials
Very informative and excellent lab exercises. Found the material to be very practical and immediately applicable to administering Resin.
The class was great. This class really helped me understand how to install Resin and deploy web applications. I would recommend this course to anyone who is looking at how to implement or upgrade Resin in their environment.
Although a lot of the course material was refresher for me, I still think it was beneficial. Emil was great. I'd definitely recommend this class to somebody who was just getting started with Resin.
Superb trainer and mentor/colleague....