Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Administration Reference

- Previous: web-container
- Next: web-module

## web-container-availability

Enables availability in the web container, including HTTP session persistence to the high-availability database (HADB).

If availability is disabled, there is no high availability for HTTP session persistence. In other words, `persistence-type=memory`.

If availability is enabled but no other `web-container-availability` attributes are specified, the default session persistence configuration is as follows:

    persistence-type=ha
    persistence-frequency=time-based
    persistence-scope=session

The default configuration for all applications can be changed by setting the various `web-container-availability` attributes and properties.

You can override the various `web-container-availability` attributes and properties for a specific application in `sun-web.xml`. For details, see the Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s Guide.

### Superelements

availability-service

### Subelements

The following table describes subelements for the `web-container-availability` element.

Table 1–161 `web-container-availability` Subelements

Element | Required | Description
--- | --- | ---
property | zero or more | Specifies a property or a variable.

### Attributes

The following table describes attributes for the `web-container-availability` element.

Table 1–162 `web-container-availability` Attributes

Attribute | Default | Description
--- | --- | ---
`availability-enabled` | `true` | (optional) If set to `true`, and if availability is enabled for the server instance (see availability-service), high-availability features apply to all web applications deployed to the server instance that do not have availability disabled. All instances in a cluster should have the same availability value to ensure consistent behavior.
`persistence-type` | `memory` | (optional) Specifies the session persistence mechanism for web applications that have availability enabled. Allowed values are `memory` (no persistence) `file` (the file system) and `ha` (the HADB). For production environments that require session persistence, use `ha`. If set to `memory`, the manager-properties element’s `sessionFilename` property specifies the file system location where the HTTP session state is stored if the server instance is gracefully shut down. This is useful for internal testing but is not supported for production environments. If set to `file`, the store-properties element’s `directory` property specifies the file system location where the HTTP session state is stored. Persisting to the file system is useful for internal testing but is not supported for production environments.
`persistence-frequency` | `web-method` | (optional) Specifies how often the session state is stored. Applicable only if the `persistence-type` is `ha`. Allowed values are as follows: `web-method` - The session state is stored at the end of each web request prior to sending a response back to the client. This mode provides the best guarantee that the session state is fully updated in case of failure. `time-based` - The session state is stored in the background at the frequency set by the `reapIntervalSeconds` property. This mode provides less of a guarantee that the session state is fully updated. However, it can provide a significant performance improvement because the state is not stored after each request.
`persistence-scope` | `session` | (optional) Specifies how much of the session state is stored. Applicable only if the `persistence-type` is `ha`. Allowed values are as follows: `session` - The entire session state is stored every time. This mode provides the best guarantee that your session data is correctly stored for any distributable web application. `modified-session` - The entire session state is stored if it has been modified. A session is considered to have been modified if `HttpSession.setAttribute()` or `HttpSession.removeAttribute()` was called. You must guarantee that `setAttribute()` is called every time an attribute is changed. This is not a J2EE specification requirement, but it is required for this mode to work properly. `modified-attribute` - Only modified session attributes are stored. For this mode to work properly, you must follow some guidelines, which are explained immediately following this table.
`sso-failover-enabled` | `false` | (optional) If `true`, the single sign-on state is highly available. To enable single sign-on, use the `sso-enabled` property of the virtual-server element.
`http-session-store-pool-name` | availability-service `store-pool-name` attribute value | (optional) Specifies the `jndi-name` of the jdbc-resource used for connections to the HADB for session persistence. For more information about setting up a connection pool and JDBC resource for the HADB, see the description of the `configure-ha-cluster` command in the Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Reference Manual.

If the `persistence-scope` attribute is set to `modified-attribute` , your web application must follow these guidelines:

- Call `setAttribute()` every time the session state is modified.

- Make sure there are no cross-references between attributes. The object graph under each distinct attribute key is serialized and stored separately. If there are any object cross references between the objects under each separate key, they are not serialized and deserialized correctly.

- Distribute the session state across multiple attributes, or at least between a read-only attribute and a modifiable attribute.

- Previous: web-container
- Next: web-module

- © 2010, Oracle Corporation and/or its affiliates