<document>
<localtoc/>

The session-config now has a save-mode attribute, specifying when Resin should save changes. The possible values are:

- before-headers
- after-request
- on-shutdown.

The default is "after-request", which is the current Resin behavior. Sites which have distribted sessions, but do not have a sticky-session load balancer may need to use "before-headers". "before-headers" does add a latency penalty.

The operation of the java.util.logging has changed to properly implement/configure the java.util.logging API.

For clarification, the <log> tag's "level" attribute sets the level of the logging Handler. It does not set the level of the Logger.

The new <logging> tag configures the Logger, e.g.

<example> <logger name="com.caucho" level="fine"/> </example>

Is equivalent to:

<example> Logger.getLogger("com.caucho").setLevel(Level.FINE); </example>

If no <logger> is supplied, the level default to the parent. If no parent has a <logger>, the level defaults to INFO.

Some MBeans have been reworked and extended:

- ClusterClientMBean (resin:type=ClusterClient,name=app-a)

Sets the time a client should wait for a connection to a backend server. Defaults to 5s.

The backend <srun> servers can now have a client-weight, so the load balancer can distribute more or less load to more or less powerful servers.

The default value is 100.

<example> <cluster id="app-tier"> <srun id="app-a" client-weight="200" host="192.168.0.10"/> <srun id="app-b" host="192.168.0.10"/> <srun id="app-test" client-weight="1" host="192.168.0.200"/> </cluster> </example>

The backend <srun> servers can now have a warmup-time. The client-warmup-time will throttle requests to the backend server while the client "warms up".

The default value is 60s.

<example> <cluster id="app-tier"> <client-warmup-time>60s</client-warmup-time> <srun id="app-a" host="192.168.0.10"/> <srun id="app-b" host="192.168.0.11"/> </cluster> </example>

client-max-idle-time is a renaming of live-time. It's the maximum time the socket will stay in the idle pool for a load balancer before it's removed.

client-max-idle-time is a renaming of dead-time. It's the time the load balancer will skip a dead backend server before retrying.

An early draft of Hessian 2.0 protocol is available.

Hessian 2.0 provides a number of compact bytecodes to reduce the size of serialized messages. Hessian 1.0 clients will continue to work with Hessian 2.0 servers without modification.

Hessian will now read and write JDK 1.5 enums.

Quercus, Caucho's implementation of the PHP language in Java, has continued its rapid development, adding advanced features as well as more PHP libraries.

Quercus provides Distributed Sessions for PHP, with the same distributed capabilities as servlets already use.

Quercus now supports

- APC
- Postgres
- Oracle OCI8
- Image Library
- JSON

The QuercusServlet now allows <server-env> to define environment variables for $_SERVER.

<example> <servlet servlet-name="php" servlet-class="com.caucho.quercus.servlet.QuercusServlet"> <init> <servlet-env foo="bar"/> </init> </servlet> </example>
</document>