@ThreadSafe public abstract class AdjListJDBCCacheLoader extends AbstractCacheLoader
Modifier and Type | Field and Description |
---|---|
protected ConnectionFactory |
cf |
protected String |
driverName |
protected StripedLock |
lock |
protected static Map<Object,Object> |
NULL_NODE_IN_ROW |
buddyFqnTransformer, cache, regionManager, transactions
Constructor and Description |
---|
AdjListJDBCCacheLoader() |
Modifier and Type | Method and Description |
---|---|
void |
commit(Object tx)
Commits a transaction.
|
boolean |
exists(Fqn name)
Checks that there is a row for the fqn in the database.
|
Map<Object,Object> |
get(Fqn name)
Returns a map representing a node.
|
Set<String> |
getChildrenNames(Fqn fqn)
Fetches child node names (not pathes).
|
protected String |
getDriverName(Connection con) |
protected abstract org.apache.commons.logging.Log |
getLogger() |
protected void |
insertNode(Fqn name,
Map dataMap,
boolean rowMayExist)
Inserts a node into the database
|
protected Map<Object,Object> |
loadNode(Fqn name)
Loads a node from the database.
|
protected ByteBuffer |
marshall(Object obj) |
protected void |
populatePreparedStatementForInsert(Fqn name,
Map dataMap,
PreparedStatement ps)
Expects a PreparedStatement binded to
AdjListJDBCCacheLoaderConfig.getInsertNodeSql() |
void |
prepare(Object tx,
List<Modification> modifications,
boolean one_phase)
First phase in transaction commit process.
|
protected PreparedStatement |
prepareAndLogStatement(Connection conn,
String sql,
String... params)
Creates a prepared statement using the given connection and SQL string, logs the statement that is about to be
executed to the logger, and optionally sets String parameters provided on the prepared statement before
returning the prepared statement.
|
protected abstract AdjListJDBCCacheLoaderConfig |
processConfig(CacheLoaderConfig.IndividualCacheLoaderConfig base) |
Object |
remove(Fqn name,
Object key)
Removes attribute's value for a key.
|
void |
removeData(Fqn name)
Nullifies the node.
|
protected void |
reportAndRethrowError(String message,
Exception cause) |
void |
rollback(Object tx)
Rolls back a transaction.
|
protected void |
safeClose(InputStream is) |
protected void |
safeClose(ResultSet rs) |
protected void |
safeClose(Statement st) |
void |
setConfig(CacheLoaderConfig.IndividualCacheLoaderConfig base)
Sets the configuration.
|
void |
start() |
void |
stop() |
protected boolean |
tableExists(String tableName,
Connection con) |
protected Object |
unmarshall(InputStream from) |
protected void |
updateNode(Fqn name,
Map<Object,Object> node)
Updates a node in the database.
|
create, destroy, doMarshall, doUnmarshall, getMarshaller, getNodeDataList, loadEntireState, loadState, loadStateHelper, move, put, put, regionAwareMarshall, regionAwareUnmarshall, setCache, setRegionManager, storeEntireState, storeState, storeStateHelper
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getConfig, put, put, remove
protected ConnectionFactory cf
protected String driverName
protected StripedLock lock
protected PreparedStatement prepareAndLogStatement(Connection conn, String sql, String... params) throws Exception
conn
- Connection to use to create the prepared statementsql
- SQL to use with the prepared statementparams
- optional parameters to add to the statement.Exception
- if there are problemspublic void setConfig(CacheLoaderConfig.IndividualCacheLoaderConfig base)
CacheLoader
Lifecycle.create()
and Lifecycle.start()
.base
- May be an instance of the CacheLoaderConfig.IndividualCacheLoaderConfig
base
class, in which case the cache loader should use the
PluggableConfigurationComponent.getProperties()
method to find configuration information. Alternatively,
may be a type-specific subclass of CacheLoaderConfig.IndividualCacheLoaderConfig
,
if there is one.public Map<Object,Object> get(Fqn name) throws Exception
name
- node's fqnException
public Set<String> getChildrenNames(Fqn fqn) throws Exception
fqn
- parent fqnException
public void removeData(Fqn name) throws Exception
name
- node's fqnException
public void prepare(Object tx, List<Modification> modifications, boolean one_phase) throws Exception
prepare
in interface CacheLoader
prepare
in class AbstractCacheLoader
tx
- something representing transactionmodifications
- a list of modificationsone_phase
- indicates whether it's one or two phase commit transactionException
public void commit(Object tx) throws Exception
commit
in interface CacheLoader
commit
in class AbstractCacheLoader
tx
- the tx to commitException
public void rollback(Object tx)
rollback
in interface CacheLoader
rollback
in class AbstractCacheLoader
tx
- the tx to rollbackpublic void start() throws Exception
start
in interface Lifecycle
start
in class AbstractCacheLoader
Exception
public void stop()
stop
in interface Lifecycle
stop
in class AbstractCacheLoader
public boolean exists(Fqn name) throws Exception
name
- node's fqnException
public Object remove(Fqn name, Object key) throws Exception
name
- node's namekey
- attribute's keyException
protected Map<Object,Object> loadNode(Fqn name)
name
- the fqnprotected void insertNode(Fqn name, Map dataMap, boolean rowMayExist)
name
- the fqndataMap
- the noderowMayExist
- if true, then this method will not be strict in testing for 1 row being inserted, since 0 may be inserted if the row already exists.protected void populatePreparedStatementForInsert(Fqn name, Map dataMap, PreparedStatement ps) throws Exception
AdjListJDBCCacheLoaderConfig.getInsertNodeSql()
Exception
protected void updateNode(Fqn name, Map<Object,Object> node)
name
- the fqnnode
- new node valueprotected String getDriverName(Connection con)
protected boolean tableExists(String tableName, Connection con)
protected abstract org.apache.commons.logging.Log getLogger()
protected abstract AdjListJDBCCacheLoaderConfig processConfig(CacheLoaderConfig.IndividualCacheLoaderConfig base)
protected void reportAndRethrowError(String message, Exception cause) throws IllegalStateException
IllegalStateException
protected void safeClose(InputStream is)
protected void safeClose(Statement st)
protected void safeClose(ResultSet rs)
protected Object unmarshall(InputStream from) throws Exception
Exception
protected ByteBuffer marshall(Object obj) throws Exception
Exception
Copyright © 2012 JBoss, a division of Red Hat. All Rights Reserved.