Class ObjectStore
java.lang.Object
com.arjuna.ats.arjuna.objectstore.ObjectStore
- All Implemented Interfaces:
BaseStore
,ObjectStoreAPI
,ParticipantStore
,RecoveryStore
,TxLog
- Direct Known Subclasses:
FileSystemStore
,TwoPhaseVolatileStore
,VolatileStore
The object store interface is the application's route to using
a specific object store implementation. The interface dynamically
binds to an implementation of the right type.
This is the base class from which all object store types are derived.
Note that because object store instances are stateless, to improve
efficiency we try to only create one instance of each type per process.
Therefore, the create and destroy methods are used instead of new
and delete. If an object store is accessed via create it *must* be
deleted using destroy. Of course it is still possible to make use of
new directly.
- Since:
- JTS 1.0.
- Version:
- $Id: ObjectStore.java 2342 2006-03-30 13:06:17Z $
- Author:
- Mark Little (mark@arjuna.com)
-
Field Summary
-
Constructor Summary
ModifierConstructorDescriptionprotected
ObjectStore
(ObjectStoreEnvironmentBean objectStoreEnvironmentBean) -
Method Summary
Modifier and TypeMethodDescriptionboolean
allObjUids
(String s, InputObjectState buff) Obtain all of the Uids for a specified type, regardless of their state.boolean
Does this store need to do the full write_uncommitted/commit protocol?final void
initialise
(Uid u, String tn) Initialise the object store.boolean
Is the current state of the object the same as that provided as the last parameter?locateStore
(String localOSRoot) protected String
revealedId
(String name) Given a type id which is possibly hidden (e.g., has a ! at the end), make it a valid Uid so we can return it.final int
void
start()
void
stop()
final String
storeDir()
final String
protected abstract boolean
supressEntry
(String name) Suppress directories of the specified type from allTypes etc?void
sync()
Some object store implementations may be running with automatic sync disabled.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.arjuna.ats.arjuna.objectstore.BaseStore
getStoreName
Methods inherited from interface com.arjuna.ats.arjuna.objectstore.ParticipantStore
commit_state, read_committed, read_uncommitted, remove_uncommitted, write_uncommitted
Methods inherited from interface com.arjuna.ats.arjuna.objectstore.RecoveryStore
allObjUids, allTypes, currentState, hide_state, read_committed, reveal_state
Methods inherited from interface com.arjuna.ats.arjuna.objectstore.TxLog
remove_committed, write_committed
-
Field Details
-
_objectStoreRoot
-
Constructor Details
-
ObjectStore
protected ObjectStore(ObjectStoreEnvironmentBean objectStoreEnvironmentBean) throws ObjectStoreException - Throws:
ObjectStoreException
-
-
Method Details
-
start
public void start() -
stop
public void stop() -
allObjUids
Description copied from interface:RecoveryStore
Obtain all of the Uids for a specified type, regardless of their state.- Specified by:
allObjUids
in interfaceRecoveryStore
- Parameters:
s
- The type to scan for.buff
- The object state in which to store the Uids- Returns:
true
if no errors occurred,false
otherwise.- Throws:
ObjectStoreException
-
sync
Some object store implementations may be running with automatic sync disabled. Calling this method will ensure that any states are flushed to disk.- Specified by:
sync
in interfaceTxLog
- Throws:
SyncFailedException
ObjectStoreException
-
locateStore
- Parameters:
localOSRoot
- the root of the store.- Returns:
- the full path of the store. localOSRoot is always a relative name. NOTE this path always ends in a /
- Throws:
ObjectStoreException
-
fullCommitNeeded
public boolean fullCommitNeeded()Does this store need to do the full write_uncommitted/commit protocol?- Specified by:
fullCommitNeeded
in interfaceParticipantStore
- Returns:
true
if full commit is needed,false
otherwise.
-
isType
Is the current state of the object the same as that provided as the last parameter?- Specified by:
isType
in interfaceRecoveryStore
- Parameters:
u
- The object to work on.tn
- The type of the object.st
- The expected type of the object.- Returns:
true
if the current state is as expected,false
otherwise.- Throws:
ObjectStoreException
-
initialise
Initialise the object store. -
storeDir
-
storeRoot
-
supressEntry
Suppress directories of the specified type from allTypes etc? -
revealedId
Given a type id which is possibly hidden (e.g., has a ! at the end), make it a valid Uid so we can return it.
-