org.apache.openjpa.jdbc.kernel
Class PessimisticLockManager
java.lang.Object
org.apache.openjpa.kernel.AbstractLockManager
org.apache.openjpa.kernel.VersionLockManager
org.apache.openjpa.jdbc.kernel.PessimisticLockManager
- All Implemented Interfaces:
- JDBCLockManager, LockLevels, LockManager, org.apache.openjpa.lib.util.Closeable
- Direct Known Subclasses:
- MixedLockManager
public class PessimisticLockManager
- extends VersionLockManager
- implements JDBCLockManager
Lock manager that uses exclusive database locks.
- Author:
- Marc Prud'hommeaux
|
Method Summary |
protected void |
checkLock(ResultSet rs,
OpenJPAStateManager sm,
int timeout)
This method is to provide override for non-JDBC or JDBC-like
implementation of checking lock from the result set. |
protected ResultSet |
executeQuery(Connection conn,
PreparedStatement stmnt,
SQLBuffer sql)
This method is to provide override for non-JDBC or JDBC-like
implementation of executing query. |
protected List<SQLBuffer> |
getLockRows(DBDictionary dict,
Object id,
ClassMapping mapping,
JDBCFetchConfiguration fetch,
SQLFactory factory)
|
JDBCStore |
getStore()
|
void |
loadedForUpdate(OpenJPAStateManager sm)
Notification that the given instance was loaded via a result set
produced by a FOR UPDATE select. |
protected void |
lockInternal(OpenJPAStateManager sm,
int level,
int timeout,
Object sdata,
boolean postVersionCheck)
|
protected void |
lockJoinTables(List<SQLBuffer> sqls,
DBDictionary dict,
Object id,
ClassMapping mapping,
JDBCFetchConfiguration fetch,
SQLFactory factory)
|
protected PreparedStatement |
prepareStatement(Connection conn,
SQLBuffer sql)
This method is to provide override for non-JDBC or JDBC-like
implementation of preparing statement. |
boolean |
selectForUpdate(Select sel,
int lockLevel)
Return whether to issue the given select FOR UPDATE, depending on
the capabilities of the dictionary and the fetch configuration. |
void |
setContext(StoreContext ctx)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LOCK_DATASTORE_ONLY
public static final int LOCK_DATASTORE_ONLY
- See Also:
- Constant Field Values
_store
protected JDBCStore _store
PessimisticLockManager
public PessimisticLockManager()
setContext
public void setContext(StoreContext ctx)
- Specified by:
setContext in interface LockManager- Overrides:
setContext in class AbstractLockManager
selectForUpdate
public boolean selectForUpdate(Select sel,
int lockLevel)
- Description copied from interface:
JDBCLockManager
- Return whether to issue the given select FOR UPDATE, depending on
the capabilities of the dictionary and the fetch configuration.
- Specified by:
selectForUpdate in interface JDBCLockManager
loadedForUpdate
public void loadedForUpdate(OpenJPAStateManager sm)
- Description copied from interface:
JDBCLockManager
- Notification that the given instance was loaded via a result set
produced by a FOR UPDATE select.
- Specified by:
loadedForUpdate in interface JDBCLockManager
lockInternal
protected void lockInternal(OpenJPAStateManager sm,
int level,
int timeout,
Object sdata,
boolean postVersionCheck)
- Overrides:
lockInternal in class VersionLockManager
getLockRows
protected List<SQLBuffer> getLockRows(DBDictionary dict,
Object id,
ClassMapping mapping,
JDBCFetchConfiguration fetch,
SQLFactory factory)
lockJoinTables
protected void lockJoinTables(List<SQLBuffer> sqls,
DBDictionary dict,
Object id,
ClassMapping mapping,
JDBCFetchConfiguration fetch,
SQLFactory factory)
getStore
public JDBCStore getStore()
prepareStatement
protected PreparedStatement prepareStatement(Connection conn,
SQLBuffer sql)
throws SQLException
- This method is to provide override for non-JDBC or JDBC-like
implementation of preparing statement.
- Throws:
SQLException
executeQuery
protected ResultSet executeQuery(Connection conn,
PreparedStatement stmnt,
SQLBuffer sql)
throws SQLException
- This method is to provide override for non-JDBC or JDBC-like
implementation of executing query.
- Throws:
SQLException
checkLock
protected void checkLock(ResultSet rs,
OpenJPAStateManager sm,
int timeout)
throws SQLException
- This method is to provide override for non-JDBC or JDBC-like
implementation of checking lock from the result set.
- Throws:
SQLException
Copyright © 2006–2017 Apache Software Foundation. All rights reserved.