kodo.jdbc.kernel
Class TableLockUpdateManager
java.lang.Object
org.apache.openjpa.jdbc.kernel.AbstractUpdateManager
kodo.jdbc.kernel.AutoOrderUpdateManager
kodo.jdbc.kernel.TableLockUpdateManager
- All Implemented Interfaces:
- UpdateManager, Configurable
public class TableLockUpdateManager
- extends AutoOrderUpdateManager
Example update manager, capable of statement batching, that ignores
foreign keys and autoincrement, but optimizes for table level locking.
Esp. important when using table level locking and trying to avoid
deadlocks.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TableLockUpdateManager
public TableLockUpdateManager()
orderDirty
public boolean orderDirty()
newRowManager
protected RowManager newRowManager()
- Specified by:
newRowManager
in class AbstractUpdateManager
flush
protected Collection flush(RowManager rowMgr,
PreparedStatementManager psMgr,
Collection exceps)
- Specified by:
flush
in class AbstractUpdateManager
sortTables
protected Collection sortTables(Collection trs)
- Sort
TableLockUpdateManager.TableRows
by table. This implementation sorts tables
lexically by table name. This is good for avoiding deadlocks in
systems with table level locking. Some orderings may avoid deadlocks
and be more scalable. E.g. sorting such that certain tables always
come last will reduce the amount of time that those tables are locked.
Sort order should probably be constant, though, in order to avoid
deadlocks.
Copyright 2001-2006 BEA Systems, Inc. All Rights Reserved.