Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.tangosol.coherence.servlet
Class SplitHttpSessionModel

    java.lang.Object
      com.tangosol.util.Base
          com.tangosol.coherence.servlet.AbstractHttpSessionModel
              com.tangosol.coherence.servlet.TraditionalHttpSessionModel
                  com.tangosol.coherence.servlet.SplitHttpSessionModel

All Implemented Interfaces:
  HttpSessionModel, ExternalizableLite, java.io.Externalizable, java.io.Serializable

    public class SplitHttpSessionModel

extends TraditionalHttpSessionModel

This is an implementation of HttpSessionModel that manages most of its state in a single serializable unit, but splits out its large attributes -- if any -- into separately managed units. By doing so, the cost of accessing those attributes is only realized when they are accessed or modified, and the core session data can remain very small, and thus very efficiently managed in a distributed environment.

Version:
  Coherence 2.3
Author:
  cp 2003.10.28

Nested Class Summary
`class` | `SplitHttpSessionModel.SplittableHolder` An immutable object to hold attribute values and related information.

Nested classes/interfaces inherited from class com.tangosol.coherence.servlet.TraditionalHttpSessionModel
`TraditionalHttpSessionModel.OptimizedHolder`

Nested classes/interfaces inherited from class com.tangosol.coherence.servlet.AbstractHttpSessionModel
`AbstractHttpSessionModel.AttributeHolder`

Field Summary
`protected static ValueExtractor` | `SESSION_ID_EXTRACTOR` ValueExtractor that can be used to extract the session ID from an external attribute key.

Fields inherited from class com.tangosol.coherence.servlet.AbstractHttpSessionModel
`CONFIG_NO_LOCKING, ENTRY_ARRAY, m_fNoLock, MAGIC_V350, STRING_ARRAY`

Constructor Summary
`SplitHttpSessionModel()` Default constructor for deserialization.
`SplitHttpSessionModel(SplitHttpSessionCollection collection, javax.servlet.http.HttpSession session, java.lang.String sId)` Session creation constructor.

Method Summary
`protected void` | `flush()` Flush the changes to this model to whatever data structure (for example, a cache) that is responsible for managing the model's data.
`int` | `getMinExternalAttributeSize()` Determine the minimum size of an attribute such that it is considered "large" and will be stored in a separate "external" or "overflow" cache.
`protected SplitHttpSessionCollection` | `getSplitHttpSessionCollection()` Get the SplitHttpSessionCollection that contains this model.
`protected AbstractHttpSessionModel.AttributeHolder` | `instantiateAttributeHolder()` Factory method: Instantiate an AttributeHolder for deserialization purposes.
`protected AbstractHttpSessionModel.AttributeHolder` | `instantiateAttributeHolder(java.lang.String sName, java.lang.Object oValue)` Factory method: Instantiate an AttributeHolder to manage the passed value.
`protected void` | `removeExternalAttributes()` Helper method used to forcefully remove all external attributes from the external attribute cache.
`protected void` | `setCollection(AbstractHttpSessionCollection collection)` After deserialization, the collection needs to be configured.
`java.lang.String` | `toString()` Returns a string representation of the object.
`protected void` | `unbind()` Unbind session attributes.

Methods inherited from class com.tangosol.coherence.servlet.AbstractHttpSessionModel
`activate, bind, checkActive, checkUsable, checkValid, discard, enter, exit, extractAttributeName, extractAttributeNames, getActualAttributeMap, getAttribute, getAttributeMap, getAttributeNameArray, getCollection, getCreationTime, getDescription, getHttpSession, getId, getLastAccessedTime, getLastFlushedTime, getLocalAttributeMap, getMaxInactiveInterval, getReferenceCount, getVersion, isActivatableAttributes, isActive, isExpired, isImmutable, isLastAccessTimeFlushRequired, isLocal, isModified, isNew, isOwnedByThisThread, isUsable, isValid, logAttributeSerializationFailure, makeDistributed, obtainThreadOwnership, passivate, qualifyAttributeName, readAttributes, readExternal, readExternal, releaseThreadOwnership, removeAttribute, sessionReturned, setActivatableAttributes, setAttribute, setHttpSession, setId, setLastAccessedTime, setLastFlushedTime, setMaxInactiveInterval, setModified, setValid, setVersion, touch, unbind, writeAttributes, writeExternal, writeExternal`

Field Detail

### SESSION_ID_EXTRACTOR

    protected static ValueExtractor SESSION_ID_EXTRACTOR

  ValueExtractor that can be used to extract the session ID from an external attribute key.

Constructor Detail

### SplitHttpSessionModel

    public SplitHttpSessionModel()

  Default constructor for deserialization.

### SplitHttpSessionModel

    public SplitHttpSessionModel(SplitHttpSessionCollection collection,
                                 javax.servlet.http.HttpSession session,
                                 java.lang.String sId)

  Session creation constructor.

  Parameters:
    `collection` - the collection that manages this model
    `session` - the session that delegates to this model
    `sId` - the session ID

Method Detail

### toString

    public java.lang.String toString()

  Returns a string representation of the object.

  Overrides:
    `toString` in class `TraditionalHttpSessionModel`
  Returns:
    a string representation of the object

### unbind

    protected void unbind()

  Unbind session attributes.

  This method may only be called by a thread that owns this model. See `AbstractHttpSessionCollection.obtainThreadOwnership(java.lang.String)`.

  Overrides:
    `unbind` in class `AbstractHttpSessionModel`

### flush

    protected void flush()

  Flush the changes to this model to whatever data structure (for example, a cache) that is responsible for managing the model's data.

  This method may only be called by a thread that owns this model. See `AbstractHttpSessionCollection.obtainThreadOwnership(java.lang.String)`.

  Overrides:
    `flush` in class `AbstractHttpSessionModel`

### setCollection

    protected void setCollection(AbstractHttpSessionCollection collection)

  After deserialization, the collection needs to be configured.

  Overrides:
    `setCollection` in class `AbstractHttpSessionModel`
  Parameters:
    `collection` - the AbstractHttpSessionCollection that this model belongs to

### getSplitHttpSessionCollection

    protected SplitHttpSessionCollection getSplitHttpSessionCollection()

  Get the SplitHttpSessionCollection that contains this model.

  Returns:
    the SplitHttpSessionCollection that contains this model

### removeExternalAttributes

    protected void removeExternalAttributes()

  Helper method used to forcefully remove all external attributes from the external attribute cache.

### getMinExternalAttributeSize

    public int getMinExternalAttributeSize()

  Determine the minimum size of an attribute such that it is considered "large" and will be stored in a separate "external" or "overflow" cache.

  Returns:
    the length of attributes, above which they will be stored in the external ("overflow") cache

### instantiateAttributeHolder

    protected AbstractHttpSessionModel.AttributeHolder instantiateAttributeHolder()

  Factory method: Instantiate an AttributeHolder for deserialization purposes.

  Overrides:
    `instantiateAttributeHolder` in class `TraditionalHttpSessionModel`
  Returns:
    a new AttributeHolder that can be deserialized into

### instantiateAttributeHolder

    protected AbstractHttpSessionModel.AttributeHolder instantiateAttributeHolder(java.lang.String sName,
                                                                                  java.lang.Object oValue)

  Factory method: Instantiate an AttributeHolder to manage the passed value.

  Overrides:
    `instantiateAttributeHolder` in class `TraditionalHttpSessionModel`
  Parameters:
    `sName` - the attribute name
    `oValue` - a non-null Object value
  Returns:
    a new AttributeHolder that will manage the passed value

Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000, 2010, Oracle. All rights reserved.