public interface Poolable
Not used yet. Still working on some issues with factoring the Transaction operations (connect, disconnect, reconnect, getConnectionMetadata).
Modifier and Type | Method and Description |
---|---|
byte[] |
activateState(int id,
SessionData info,
int flags)
Internal: Applications should not use this method.
|
int |
passivateState(int id,
byte[] clientData,
int flags)
Internal: Applications should not use this method.
|
void |
prepareSession(SessionData info)
Internal: Applications should not use this method.
|
void |
removeState(int id)
Internal: Applications should not use this method.
|
void |
resetState(int flags)
Advanced use only
|
void prepareSession(SessionData info)
void resetState(int flags)
Applications should override/extend ApplicationModuleImpl.reset()
to reset custom application module state. reset() is invoked by the
internal resetState before resetState begins cleaning up
internal application module state.
Flag usage:
RESET_RELOAD_FLAG directs resetState to eagerly reload the application module compoonents.
RESET_ROLLBACK_FLAG directs resetState to rollback the application module.
RESET_INTERNAL_FLAG directs resetState to perform an internal reset only. The ApplicationPool uses this to reset a managed state application module while also managing the previous session's state. For example, when RESET_INTERNAL has been specified the reset will not remove the persistent snapshot records on the snapshot stack.
Resets the non-transaction state of an application module. For example:
appModule.resetState(false);
reload forces the application module to reload any child view usages, application module usages, and view link usages.
flags
- int passivateState(int id, byte[] clientData, int flags)
Serializes the current state of this application module's session, along with all changes cached, to a byte array and returns a unique identifier with which to re-establish the state.
This method accepts an id which represents the unique identifier that
should be used to re-establish the application module state. The id
must have been generated by invoking
ApplicationModule.reserveSnapshotId(int)
.
The same snapshot type bit which was specified when the snapshot id was reserved should be specified when this method is invoked. For example, if reserveSnapshotId was invoked with the PASSIVATE_TRANSIENT_FLAG set then this method should be invoked with the PASSIVATE_TRANSIENT_FLAG set. Failing to do so may result in invalid snapshot id exceptions.
For more information regarding passivation please see
passivateState(int, byte[], int)
.
id
- a reserved passivation idclientData
- cached changes, or any information that a client might
want to store.flags
- a bit map defining passivation flags.ApplicationModule.reservePassivationId()
byte[] activateState(int id, SessionData info, int flags)
Deserializes a session-state from the persistent store based on the given id. This method always works from the top-level application module. If you have nested application modules and you call this method on a inner application module, it will still work from the top-level module.
When the PERSISTENT_SNAPSHOT bit is set then this method will attempt to locate the snapshot bytes in a persistent store (database or file). If the PERSISTENT_SNAPSHOT bit is not set then this method will locate the snapshot bytes on the stack.
When this method is called, the rows that are updated are locked; new rows
are inserted into the transaction cache and posted. This is in contrast
to passivateState(int, byte[], int)
, which does not affect the
transaction state.
The activateState method preserves currency. When it is
called, it will return the row that was active when
passivateState(int, byte[], int)
was called.
For an example usage of activateState, see
passivateState(int, byte[], int)
.
If the REMOVE_SNAPSHOT bit is set in the flags then the activation framework will remove the snapshot from the persistent store after activation.
It is up to the developer to devise a clean-up strategy for the redundant store.
id
- a unique integer identifier associated with an instance of the
application module.passivateState(int, byte[], int)
method.void removeState(int id)
Removes the application module's session-state, and any cached change information, from the persistent store based on the given id. For example:
appModule.removeState(id);
id
- an unique integer identifier associated with an instance of the
application module.