Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide

- Previous: HTTP Session Persistence Frequency
- Next: Stateful Session Bean Checkpointing

### HTTP Session Size and Scope

The session size per request depends on the amount of session information stored in the session.

Tip –

To improve overall performance, reduce the amount of information in the session as much as possible.

It is possible to fine-tune the session size per request through the `persistence scope` settings. Choose from the following options for HTTP session persistence scope:

- session: The server serializes and saves the entire session object every time it saves session information to HADB.

- modified-session: The server saves the session only if the session has been modified. It detects modification by intercepting calls to the bean’s `setAttribute()` method. This option will not detect direct modifications to inner objects, so in such cases the SFSB must be coded to call `setAttribute()` explicitly.

- modified-attribute: The server saves only those attributes that have been modified (inserted, updated, or deleted) since the last time the session was stored. This has the same drawback as modified-session but can significantly reduce HADB write throughput requirements if properly applied.

To use this option, the application must:

- Call `setAttribute()` or `removeAttribute()` every time it modifies session state.

- Make sure there are no cross references between attributes.

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

  The following table summarizes the advantages and disadvantages of the persistence scope options.

Table 2–2 Comparison of Persistence Scope Options

Persistence Scope Option | Advantages | Disadvantages
--- | --- | ---
modified-session | Provides improved response time for requests that do not modify session state. | During the execution of a web method, typically `doGet()` or `doPost(`), the application must call a session method: `setAttribute()` if the attribute was changed `removeAttribute()` if the attribute was removed.
session | No constraint on applications. | Potentially poorer throughput and response time as compared to the `modified-session` and the `modified-attribute` options.
modified-attribute | Better throughput and response time for requests in which the percentage of session state modified is low. | As the percentage of session state modified for a given request nears 60%, throughput and response time degrade. In such cases, the performance is worse than the other options because of the overhead of splitting the attributes into separate records.

- Previous: HTTP Session Persistence Frequency
- Next: Stateful Session Bean Checkpointing

- © 2010, Oracle Corporation and/or its affiliates