Each server instance has the same distributable web application
deployed to it. The web-app element of the web.xml deployment
descriptor file must have the distributable subelement
specified.

The web application uses high-availability session persistence.
If a non-distributable web application is configured to use high-availability
session persistence, an error is written to the server log. See The ha Persistence Type.

All objects bound into a distributed session must be of the
types listed in Table 5–4.

Contrary to the Servlet 2.4 specification, Application Server does
not throw an IllegalArgumentException if an object type
not supported for failover is bound into a distributed session.

Keep
the distributed session size as small as possible. Session size has a direct
impact on overall system throughput.

A servlet that is not deployed as part of a web application is implicitly
deployed to a default web application and has the default ServletContext. The default ServletContext is not distributed.
(A web application with an empty context root does not have
the default ServletContext.)

In the event of an instance or hardware failure, another server instance
can take over a distributed session, with the following limitations:

If a distributable web application references a J2EE component
or resource, the reference might be lost. See Table 5–4 for a list of the types of references that HTTPSession failover supports.

In the following table, No indicates that failover
for the object type might not work in all cases and that no failover support
is provided. However, failover might work in some cases for that object type.
For example, failover might work because the class implementing that type
is serializable.