Overview and introduction to Resin from an administration perspective.
As traffic increases beyond a single server, Resin's clustering
lets you add new machines to handle the load and simultaneously improves
uptime and reliability by failing over requests from a downed or maintenance
server to a backup transparently.
Resin provides a robust and tested connection pool that is used to
obtain connections to databases.
Resin provides a wide variety of custom packaging and deployment
options.
Resin includes the ability to add servers to clusters dynamically. These
dynamic servers are able to use distributed sessions and the distributed
object cache. The triad also updates these servers with applications
that are deployed via the remote deployment server. The Resin load balancer
is also able to dispatch requests to them as with any static server.
Library, project, and third-party jars can be stored
in project-jars and resolved using a Maven WEB-INF/pom.xml.
Resin will match the correct versions from project-jars
and create classloaders for the web-app's libraries.
Resin's configuration uses a powerful, general dependency
injection system (CanDI) to configure servlets, Resin resources, databases,
application components, third-party libraries and drivers. By understanding
a few rules matching the XML to the configured resources, an administrator
can have full control over the application server behavior.
Because of the importance of verifying and debugging configuration,
Resin's configuration is stateless, meaning that the XML files fully
describe the configuration of the system. Resin avoids hidden state
by avoiding deployment tools and internal, hidden database configuration.
As traffic increases beyond a single server, Resin's load-balancing
lets you add new machines to handle the load and simultaneously improves
uptime and reliability by failing over requests from a downed or maintenance
server to a backup transparently.
The /resin-admin web-app provides an administration overview of a
Resin server. Resin-Pro users can obtain information across the entire
cluster, profile a running Resin instance, and obtain thread dumps and
heap dumps.
All Resin users should familiarize themselves with the thread dump,
profile, and heap capabilities.
When you need to rewrite an external URL to a more convenient internal
format, like rewriting to *.php files, you can use Resin's rewrite
capabilities. Because Resin's rewrite is patterned after Apache's
mod_rewrite, you can translate older mod_rewrite rules to Resin's rewrite
tags.
Resin's <resin:ScheduledTask> capability lets you schedule
events using a flexible cron-style trigger. The task can be
any Runnable bean, a method specified by EL, or
a URL.
A list of symptoms and their possible resolution.
A Resin server can serve many virtual hosts, each with
its own servlets and documents. The configuration is flexible,
allowing dynamic host deployment in a hosts directory
or using explicit <host> tags for additional control and security,
and compatibility with existing Apache sites, enabling easy upgrades
and evaluation for PHP servers to Quercus.
For reliability and security, Resin servers are started and monitored
by a separate Resin watchdog process. The watchdog continually checks
the health of
the Resin server and restarts the Resin instance if is becomes unresponsive.
In most cases, the watchdog reads the resin.xml and configures itself
automatically, so no extra configuration is required. Certain specialized
configurations like ISPs can configure the watchdog to isolate JVMs
for protection and security.
A web application is a self-contained subtree of the web site. It uses
Servlets, Filters, JSP, and the functionality provided by Resin and any other
java code to provide a response to a client that makes an HTTP request.