A.2. Persistent Object Stores

This section briefly describes the characteristics and optimizations of each of the supplied implementations of the persistent object store. Persistent object states are mapped onto the structure of the file system supported by the host operating system.
Common Functionality

In addition to the features mentioned earlier, all of the supplied persistent object stores obey the following rules:

  • Each object state is stored in its own file, which is named using the Uid of the object.
  • The type of an object, provided by the type() operation, determines the directory where the object is placed.
  • All of the stores have a common root directory which is determined by the JBoss Transaction Service configuration. This directory name is automatically prepended to any store-specific root information.
  • All stores can also use a localized root directory that is automatically prepended to the type of the object to determine the ultimate directory name. The localized root name is specified when the store is created. The default localized root name is defaultStore.

Table A.1. Example Object Store Information

Item
Example Value
ObjectStore root Directory from configure
/JBossTS/ObjectStore/
ObjectStore Type 1
FragmentedStore/
Default root
defaultStore/
StateManager
StateManager
LockManager
LockManager/
User Types
Localized root 2
myStore/
StateManager
StateManager/
ObjectStore Type2
ActionStore/
Default root
defaultStore/

A.2.1. The Shadowing Store

The shadowing store is the original version of the object store as provided in prior releases. It is implemented by the ShadowingStore class. It is simple but slow, using pairs of files to represent objects: the shadow version and the committed version. Files are opened, locked, operated upon, unlocked, and closed during every interaction with the object store. This can take more resources than strictly necessary just to open, close, and rename files.
The type of this object store is ShadowingStore.