<document>
<localtoc/>

Resin 3.1.x is now the stable branch. Only important bug fixes will be applied to new versions of the 3.1.x branch.

For new features, the 3.2.x branch is now the development branch.

- See JSF demo

Resin's JSF has been promoted to release status after fixing a large number of compatibility issues. Resin-JSF aims to be high performance, based on its tight integration with Resin's JSP and use of Hessian as a serialization protocol.

- See Quercus documentation

Quercus has continued to steadily fix bugs and implement PHP functions.

The killer app list has now expanded to five:

1. MediaWiki 1.12 (wikipedia)
2. Wordpress 2.5.1 (blogging)
3. Drupal 6.0 (content management system)
4. Typo3 (content management system)
5. phpBB3 (bulletin board system)

The following comparison is between Resin/Quercus and PHP 5.2 with the APC accelerator. mod_php without the accelerator is much slower.

Application Resin/Quercus Apache/PHP Difference
Hello, World 5656 rps 2986 rps +89%
Mediawiki 1.12 28.2 rps 22.5 rps +25%
Wordpress 2.5.1 35.4 rps 28.6 rps +24%
Drupal 6.0 54.3 rps 39.6 rps +37%
phpBB3 121.5 rps 77.8 rps +56%

Resin 3.1.6 introduces HMTP, the Hessian Message Transport Protocol. HMTP is designed as a lightweight, asynchronous messaging protocol enabling Flash application and other rich interactive applications.

HMTP is designed to enable interactive applications such as games, administration consoles, stock trading applications, or notification protocols like Atom or instant messaging.

- See Resin Messaging

Added com.caucho.jms.queue.JmsBlockingQueue for 3rd party JMS. In 3.1.5, Resin introduced a `BlockingQueue` interface for its own JMS queues to match the <ejb-message-bean> simplified message handling. This change introduces a <bean> `JmsBlockingQueue` which provides the same capabilities for other JMS providers.

For Resin Pro on unix systems, the watchdog automatically increases the fd-max value before launching Resin. In combination with the select-manager and Comet, this allows a much greater number of simultaneous active threads.

For ISP users of Resin Pro, the watchdog can now execute a <chroot> before starting the Resin instance, allowing for significantly improved security.

The new <scheduled-task> resource allows for timer-based scheduled tasks, controlled by a <cron> expression. The task can either be a Runnable bean, an EL method, or a URL.

<web-app xmlns="http://caucho.com/ns/resin"> <scheduled-task task="#{taskBean}"> <cron>0 0 *</cron> </scheduled-task> </web-app>

For Resin-Pro, the administration task now checks CPU usage every minute. If the usage is high, it will log the CPU uptime. If it's excessive, Resin will automatically produce a thread dump. It's also possible to configure Resin to automatically restart on an excessive CPU time.

java.util.Logging configuration has been improved and enhanced by adding a <log-handler>, adding new handlers, and improving the custom configuration.

The new <log-handler> should replace <log> in most configurations. It configures a java.util.logging.Handler and registers it with the Logger. The level in <log-handler> configures only the Handler itself, not the Logger (which is how it differs from <log>.)

The new handlers can be configured with the "uri" attribute. The following example configures a HMTP handler to send messages to the named HMTP destination.

<web-app xmlns="http://caucho.com/ns/resin"> <log-handler name="" level="warning" uri="hmtp:"> <init to="test@localhost"/> </log-handler> </web-app>

- uri="event:" send a WebBeans event using the LogEvent
- uri="jms:" send a JMS message
- uri="hmtp:" send a HMTP message

</document>