Overview
Resin is a J2EE web container. With Resin integrated with Terracotta, it is possible to share application state with other JVMs, e.g. web applications can use a combination of hibernate + EHCache and cluster it with Terracotta. All DSO features can be used in Resin besides sessions. Resin versions 3.1.2 and 3.1.3 are known to be working with Terracotta, but only when Resin class (com.caucho.server.resin.Resin) is invoked directly. If you try to start Resin with its start scripts, Terracotta does not work. Older Resin versions have different classloader mechanism and do not work without changes to the code.
Configuration Module
The quickest and easiest way to cluster Resin is to include resin Configuration Module in your Terracotta XML configuration. Just download the following jar file: clustered-resin-3.1.2-1.0.0.jar
and add it in your configuration like this:
<clients>
<logs>%(l1.log.directory)/local/tc_runtime/resin/client-logs</logs>
<modules>
<repository>file:modules</repository>
<module name="clustered-resin-3.1.2" version="1.0.0"/>
</modules>
</clients>
 | Module Location
Make sure that the modules are located in the correct location. The location of the modules is specified in the <repository> element. The easiest way is to copy all the module jars in the TC_INSTALL_DIR/modules directory and you do not need to specify the <repository> element. If you chose to keep the modules in a custom location, you should specify the correct location in the <repository> element. E.g. The above example assumes the modules to be in the modules sub-directory under the current directory. |
 | Module name
Note that there is a correlation between the module jar file-name and the module element in the configuration. The jar file-name follows the pattern modulename-version. |
Here is further documentation on configuration modules: Configuration Modules
How to start Resin Web Server with terracotta
See the guidelines at Drupal Integration
The system class loader issue (DEV-959
) is worked upon. Once fixed, it will not require disabling of Resin System ClassLoader.
What is supported
The use of plain roots in a web application are known to work. DSO sessions or sharing instances defined by class loaders outside of the web application do not work. Your terracotta configuration must not contain a <web-applications> element.
Public Source Repository
SVN: http://svn.terracotta.org/svn/forge/projects/labs/resin
Private Source Repository (for committers)
SVN: https://svn.terracotta.org/repo/forge/projects/labs/resin