JBoss API: Class BeanLockSupport
org.jboss.ejb.plugins.lock
Class BeanLockSupport
java.lang.Object
|
+--org.jboss.ejb.plugins.lock.BeanLockSupport
All Implemented Interfaces: BeanLock
Direct Known Subclasses: QueuedPessimisticEJBLock , SimplePessimisticEJBLock
public abstract class BeanLockSupport extends java.lang.Objectimplements BeanLock
Support for the BeanLock
Version: $Revision: 1.4.4.4 $
Revisions:
2001/07/29: marcf
Initial revision
Author: Bill Burke , Marc Fleury
Field Summary
protected java.lang.Object
id
The Cachekey corresponding to this Bean
protected int
numMethodLocks
Number of threads invoking methods on this bean
(1 normally >1 if reentrant)
protected boolean
reentrant
Are reentrant calls allowed?
protected int
refs
Number of threads that retrieved this lock from the manager
(0 means removing)
protected boolean
synched
protected javax.transaction.Transaction
tx
protected int
txTimeout
protected static java.util.HashMap
waiting
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
numMethodLocks
protected int numMethodLocks
Number of threads invoking methods on this bean
(1 normally >1 if reentrant)
refs
protected int refs
Number of threads that retrieved this lock from the manager
(0 means removing)
id
protected java.lang.Object id
The Cachekey corresponding to this Bean
reentrant
protected boolean reentrant
Are reentrant calls allowed?
tx
protected javax.transaction.Transaction tx
synched
protected boolean synched
txTimeout
protected int txTimeout
waiting
protected static java.util.HashMap waiting
BeanLockSupport
public BeanLockSupport ()
setId
public void setId (java.lang.Object id)
Specified by: setId
in interface BeanLock
getId
public java.lang.Object getId ()
Specified by: getId
in interface BeanLock
setReentrant
public void setReentrant (boolean reentrant)
Specified by: setReentrant
in interface BeanLock
setTimeout
public void setTimeout (int timeout)
Specified by: setTimeout
in interface BeanLock
sync
public void sync ()
Specified by: sync
in interface BeanLock
releaseSync
public void releaseSync ()
Specified by: releaseSync
in interface BeanLock
schedule
public abstract void schedule (MethodInvocation mi)
throws java.lang.Exception
Specified by: schedule
in interface BeanLock
setTransaction
public void setTransaction (javax.transaction.Transaction tx)
The setTransaction associates a transaction with the lock.
The current transaction is associated by the schedule call.
Specified by: setTransaction
in interface BeanLock
getTransaction
public javax.transaction.Transaction getTransaction ()
Specified by: getTransaction
in interface BeanLock
endTransaction
public abstract void endTransaction (javax.transaction.Transaction tx)
Specified by: endTransaction
in interface BeanLock
wontSynchronize
public abstract void wontSynchronize (javax.transaction.Transaction tx)
Specified by: wontSynchronize
in interface BeanLock
isMethodLocked
public boolean isMethodLocked ()
Specified by: isMethodLocked
in interface BeanLock
getNumMethodLocks
public int getNumMethodLocks ()
Specified by: getNumMethodLocks
in interface BeanLock
addMethodLock
public void addMethodLock ()
Specified by: addMethodLock
in interface BeanLock
releaseMethodLock
public abstract void releaseMethodLock ()
Description copied from interface: BeanLock
releaseMethodLock
if we reach the count of zero it means the instance is free from threads (and reentrency)
we wake up the next thread in the currentLock
Specified by: releaseMethodLock
in interface BeanLock
addRef
public void addRef ()
Specified by: addRef
in interface BeanLock
removeRef
public void removeRef ()
Specified by: removeRef
in interface BeanLock
getRefs
public int getRefs ()
Specified by: getRefs
in interface BeanLock
isCallAllowed
protected boolean isCallAllowed (MethodInvocation mi)
deadlockDetection
public void deadlockDetection (javax.transaction.Transaction miTx)
throws ApplicationDeadlockException
Copyright © 2000 The JBoss Organization. All Rights Reserved.