Provides an implementation of
DataStore
based on the database interface layer defined in the {@link com.sun.sgs.service.store.db} package.
Note that, although this class provides support for the {@link TransactionParticipant#prepare TransactionParticipant.prepare} method, itdoes not provide facilities for resolving prepared transactions after a crash. Callers can work around this limitation by insuring that the transaction implementation calls {@link TransactionParticipant#prepareAndCommit TransactionParticipant.prepareAndCommit} to commit transactions on thisclass. The current transaction implementation calls prepareAndCommit
on durable participants, such as this class, so the inability to resolve prepared transactions should have no effect at present.
The {@link #DataStoreImpl(Properties,AccessCoordinator) constructor}supports these public properties.
The constructor also passes the properties to the constructor of the {@link DbEnvironment} class chosen at runtime with the{@code com.sun.sgs.impl.service.data.store.db.environment.class} property.Each implementation of {@code DbEnvironment} may support additionalproperties.
This class uses the {@link Logger} namedcom.sun.sgs.impl.service.data.store.DataStoreImpl
to log information at the following logging levels:
- {@link Level#SEVERE SEVERE} - Initialization failures
- {@link Level#CONFIG CONFIG} - Constructor properties, data storeheaders
- {@link Level#FINE FINE} - Allocating blocks of object IDs
- {@link Level#FINER FINER} - Transaction operations
- {@link Level#FINEST FINEST} - Name and object operations
In addition, name and object operations that throw {@link TransactionAbortedException} will log the failure to the {@code Logger}named {@code com.sun.sgs.impl.service.data.store.DataStoreImpl.abort}, to make it easier to debug concurrency conflicts.