|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.tc.object.bytecode.NullManager
public class NullManager
Null implementation of the manager.
Field Summary | |
---|---|
static java.lang.String |
CLASS
|
static java.lang.String |
TYPE
|
Fields inherited from interface com.tc.object.bytecode.Manager |
---|
LOCK_TYPE_CONCURRENT, LOCK_TYPE_READ, LOCK_TYPE_SYNCHRONOUS_WRITE, LOCK_TYPE_WRITE |
Method Summary | |
---|---|
int |
calculateDsoHashCode(java.lang.Object object)
Calculate a hash code for the object that will be the same on all nodes, i.e., that does not depend on Object.hashCode(). |
void |
checkWriteAccess(java.lang.Object context)
Check whether current context has write access |
java.lang.Object |
createOrReplaceRoot(java.lang.String name,
java.lang.Object object)
Create or replace root, typically used for replaceable roots. |
boolean |
distributedMethodCall(java.lang.Object receiver,
java.lang.String method,
java.lang.Object[] params,
boolean runOnAllNodes)
Perform distributed method call |
void |
distributedMethodCallCommit()
Commit DMI call |
LockID |
generateLockIdentifier(java.lang.Object obj)
|
LockID |
generateLockIdentifier(java.lang.Object obj,
java.lang.String field)
|
LockID |
generateLockIdentifier(java.lang.String str)
|
java.lang.Object |
getChangeApplicator(java.lang.Class clazz)
Retrieve the customer change applicator that was registered for a particular class. |
ClassProvider |
getClassProvider()
Get the ClassProvider associated with this Manager |
java.lang.String |
getClientID()
Get JVM Client identifier |
DsoCluster |
getDsoCluster()
Retrieves the DSO cluster instance. |
static Manager |
getInstance()
Get instance of the null manager |
InstrumentationLogger |
getInstrumentationLogger()
Get the instrumentation logger |
TCLogger |
getLogger(java.lang.String loggerName)
Get the named logger |
javax.management.MBeanServer |
getMBeanServer()
Retrieves the MBean server that's used by this Terracotta client |
SessionConfiguration |
getSessionConfiguration(java.lang.String appName)
Get the configuration for the given application name (ie. |
StatisticRetrievalAction |
getStatisticRetrievalActionInstance(java.lang.String name)
|
TCProperties |
getTCProperties()
|
TunneledDomainUpdater |
getTunneledDomainUpdater()
Get the TunneledDomainUpdater associated with this Manager |
java.lang.String |
getUUID()
Get unique Client identifier |
int |
globalHoldCount(LockID lock,
LockLevel level)
Return the count of global (cluster-wide) holders at the given lock level. |
int |
globalPendingCount(LockID lock)
Return the count of global (cluster-wide) pending holders. |
int |
globalWaitingCount(LockID lock)
Return the count of global (cluster-wide) waiting threads. |
void |
init()
Initialize the Manager |
void |
initForTests()
Initialize the Manager for running tests |
boolean |
isDsoMonitored(java.lang.Object obj)
Check whether an object is shared |
boolean |
isDsoMonitorEntered(java.lang.Object obj)
Check whether dso MonitorExist is required |
boolean |
isFieldPortableByOffset(java.lang.Object pojo,
long fieldOffset)
Returns true if the field represented by the offset is a portable field, i.e., not static and not dso transient |
boolean |
isLiteralAutolock(java.lang.Object o)
|
boolean |
isLiteralInstance(java.lang.Object object)
|
boolean |
isLocked(LockID lock,
LockLevel level)
Return true if the given lock is held by any thread at the given lock level. |
boolean |
isLockedByCurrentThread(LockID lock,
LockLevel level)
Return true if the given lock is held by the current thread at the given lock level. |
boolean |
isLockedByCurrentThread(LockLevel level)
Return true if any lock is held by the current thread at the given lock level. |
boolean |
isLockHeldByCurrentThread(java.lang.String lockId,
int lockLevel)
|
boolean |
isLogical(java.lang.Object object)
Check whether object is logically instrumented |
boolean |
isManaged(java.lang.Object object)
Check whether an object is managed |
boolean |
isPhysicallyInstrumented(java.lang.Class clazz)
Determine whether this class is physically instrumented |
boolean |
isRoot(java.lang.reflect.Field field)
Check whether field is a root |
int |
localHeldCount(java.lang.Object obj,
int lockLevel)
|
int |
localHoldCount(LockID lock,
LockLevel level)
Return the count of local (on this client VM) holders at the given lock level. |
void |
lock(LockID lock,
LockLevel level)
Blocking acquire of a Terracotta lock. |
void |
lockInterruptibly(LockID lock,
LockLevel level)
Interruptible acquire of a Terracotta lock. |
void |
logicalInvoke(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] params)
Perform invoke on logical managed object |
void |
logicalInvokeWithTransaction(java.lang.Object object,
java.lang.Object lockObject,
java.lang.String methodName,
java.lang.Object[] params)
Perform invoke on logical managed object in lock |
TCObjectExternal |
lookupExistingOrNull(java.lang.Object obj)
Find managed object, which may be null |
java.lang.Object |
lookupObject(ObjectID id)
Look up object by ID, faulting into the JVM if necessary |
java.lang.Object |
lookupObject(ObjectID id,
ObjectID parentContext)
Look up object by ID, faulting into the JVM if necessary, This method also passes the parent Object context so that more intelligent prefetching is possible at the L2. |
TCObjectExternal |
lookupOrCreate(java.lang.Object obj)
Find or create new TCObjectExternal |
java.lang.Object |
lookupOrCreateRoot(java.lang.String name,
java.lang.Object object)
Look up or create a new root object |
java.lang.Object |
lookupOrCreateRootNoDepth(java.lang.String name,
java.lang.Object obj)
Look up or create a new root object. |
java.lang.Object |
lookupRoot(java.lang.String name)
Lookup root by name |
void |
monitorEnter(LockID lock,
LockLevel level)
Used by instrumented code to perform a clustered monitorenter . |
void |
monitorExit(LockID lock,
LockLevel level)
Used by instrumented code to perform a clustered monitorexit . |
Notify |
notify(LockID lock,
java.lang.Object waitObject)
Notify a single thread waiting on the given lock. |
Notify |
notifyAll(LockID lock,
java.lang.Object waitObject)
Notify all threads waiting on the given lock. |
boolean |
overridesHashCode(java.lang.Object obj)
Returns true if the given object overrides hashCode() from java.lang.Object. |
void |
pinLock(LockID lock)
|
void |
preFetchObject(ObjectID id)
Prefetch object by ID, faulting into the JVM if necessary, Async lookup and will not cause ObjectNotFoundException like lookupObject. |
void |
registerBeforeShutdownHook(java.lang.Runnable beforeShutdownHook)
Registers a hook that will be called before shutting down this client |
void |
registerNamedLoader(NamedClassLoader loader,
java.lang.String webAppName)
Register a named classloader with Terracotta. |
void |
registerStatisticRetrievalAction(StatisticRetrievalAction sra)
|
void |
stop()
Stop the manager |
boolean |
tryLock(LockID lock,
LockLevel level)
Try to acquire a Terracotta lock. |
boolean |
tryLock(LockID lock,
LockLevel level,
long timeout)
Timed acquire of a Terracotta lock. |
void |
unlock(LockID lock,
LockLevel level)
Blocking unlock of a Terracotta lock. |
void |
unpinLock(LockID lock)
|
void |
wait(LockID lock,
java.lang.Object waitObject)
Move the current thread to wait on the given lock. |
void |
wait(LockID lock,
java.lang.Object waitObject,
long timeout)
Move the current thread to wait on the given lock with timeout. |
void |
waitForAllCurrentTransactionsToComplete()
Used by BulkLoad to wait for all current transactions completed |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String CLASS
public static final java.lang.String TYPE
Method Detail |
---|
public static Manager getInstance()
public void init()
Manager
init
in interface Manager
public void initForTests()
Manager
initForTests
in interface Manager
public void stop()
Manager
stop
in interface Manager
public java.lang.Object lookupOrCreateRoot(java.lang.String name, java.lang.Object object)
Manager
lookupOrCreateRoot
in interface Manager
name
- Root nameobject
- Root object to use if none exists yet
public java.lang.Object lookupOrCreateRootNoDepth(java.lang.String name, java.lang.Object obj)
Manager
lookupOrCreateRootNoDepth
in interface Manager
name
- Root nameobj
- Root object to use if none exists yet
public java.lang.Object createOrReplaceRoot(java.lang.String name, java.lang.Object object)
Manager
createOrReplaceRoot
in interface Manager
name
- Root nameobject
- Root object
public TCObjectExternal lookupExistingOrNull(java.lang.Object obj)
Manager
lookupExistingOrNull
in interface Manager
obj
- The object instance
public void logicalInvoke(java.lang.Object object, java.lang.String methodName, java.lang.Object[] params)
Manager
logicalInvoke
in interface Manager
object
- The objectmethodName
- The method to callparams
- The parameters to the methodpublic boolean distributedMethodCall(java.lang.Object receiver, java.lang.String method, java.lang.Object[] params, boolean runOnAllNodes)
Manager
distributedMethodCall
in interface Manager
receiver
- The receiver objectmethod
- The method to callparams
- The parameter valuesrunOnAllNodes
- True if should run on all nodes, false just for this nodepublic void distributedMethodCallCommit()
Manager
distributedMethodCallCommit
in interface Manager
public void checkWriteAccess(java.lang.Object context)
Manager
checkWriteAccess
in interface Manager
context
- Context objectpublic boolean isManaged(java.lang.Object object)
Manager
isManaged
in interface Manager
object
- Instance
public boolean isLiteralInstance(java.lang.Object object)
isLiteralInstance
in interface Manager
literal type
, e.g., Class, Integer,
etc.public boolean isLiteralAutolock(java.lang.Object o)
isLiteralAutolock
in interface Manager
literal type
and is suitable for
cluster-wide locking,public int calculateDsoHashCode(java.lang.Object object)
Manager
calculateDsoHashCode
in interface Manager
public boolean isLogical(java.lang.Object object)
Manager
isLogical
in interface Manager
object
- Instance
public boolean isRoot(java.lang.reflect.Field field)
Manager
isRoot
in interface Manager
field
- Field
public java.lang.Object lookupRoot(java.lang.String name)
Manager
lookupRoot
in interface Manager
name
- Name of root
public boolean isLockHeldByCurrentThread(java.lang.String lockId, int lockLevel)
public void logicalInvokeWithTransaction(java.lang.Object object, java.lang.Object lockObject, java.lang.String methodName, java.lang.Object[] params)
Manager
logicalInvokeWithTransaction
in interface Manager
object
- The objectlockObject
- The lock objectmethodName
- The method to callparams
- The parameters to the methodpublic boolean isPhysicallyInstrumented(java.lang.Class clazz)
Manager
isPhysicallyInstrumented
in interface Manager
clazz
- Class
public java.lang.String getClientID()
Manager
getClientID
in interface Manager
public TCLogger getLogger(java.lang.String loggerName)
Manager
getLogger
in interface Manager
loggerName
- Logger name
public TCObjectExternal lookupOrCreate(java.lang.Object obj)
Manager
lookupOrCreate
in interface Manager
obj
- The object instance
public java.lang.Object lookupObject(ObjectID id)
Manager
lookupObject
in interface Manager
id
- Object identifier
public java.lang.Object lookupObject(ObjectID id, ObjectID parentContext)
Manager
lookupObject
in interface Manager
id
- Object identifier of the object we are looking upparentContext
- Object identifier of the parent object
public TCProperties getTCProperties()
getTCProperties
in interface Manager
public int localHeldCount(java.lang.Object obj, int lockLevel)
public boolean isDsoMonitored(java.lang.Object obj)
Manager
isDsoMonitored
in interface Manager
obj
- Instance
public boolean isDsoMonitorEntered(java.lang.Object obj)
Manager
isDsoMonitorEntered
in interface Manager
public boolean isFieldPortableByOffset(java.lang.Object pojo, long fieldOffset)
Manager
isFieldPortableByOffset
in interface Manager
pojo
- ObjectfieldOffset
- The index
public InstrumentationLogger getInstrumentationLogger()
Manager
getInstrumentationLogger
in interface Manager
public boolean overridesHashCode(java.lang.Object obj)
Manager
overridesHashCode
in interface Manager
public void registerNamedLoader(NamedClassLoader loader, java.lang.String webAppName)
Manager
registerNamedLoader
in interface Manager
webAppName
- corresponds to the name of a web-application in the TC config, or null if the classloader being
registered is not associated with a web application.public ClassProvider getClassProvider()
Manager
getClassProvider
in interface Manager
public TunneledDomainUpdater getTunneledDomainUpdater()
Manager
getTunneledDomainUpdater
in interface Manager
public DsoCluster getDsoCluster()
Manager
getDsoCluster
in interface Manager
public javax.management.MBeanServer getMBeanServer()
Manager
getMBeanServer
in interface Manager
public void preFetchObject(ObjectID id)
Manager
preFetchObject
in interface Manager
id
- Object identifierpublic StatisticRetrievalAction getStatisticRetrievalActionInstance(java.lang.String name)
getStatisticRetrievalActionInstance
in interface Manager
public java.lang.Object getChangeApplicator(java.lang.Class clazz)
Manager
getChangeApplicator
in interface Manager
clazz
- The class for which the custom change application has to be returned
null
if no custom applicator was registered for
this classpublic LockID generateLockIdentifier(java.lang.String str)
generateLockIdentifier
in interface TerracottaLocking
public LockID generateLockIdentifier(java.lang.Object obj)
generateLockIdentifier
in interface TerracottaLocking
public LockID generateLockIdentifier(java.lang.Object obj, java.lang.String field)
generateLockIdentifier
in interface TerracottaLocking
public int globalHoldCount(LockID lock, LockLevel level)
TerracottaLocking
This method has unusual semantics similar to isLocked.
globalHoldCount
in interface TerracottaLocking
lock
- lock to querylevel
- level to queryTerracottaLocking.isLocked(LockID, LockLevel)
public int globalPendingCount(LockID lock)
TerracottaLocking
This method has unusual semantics similar to isLocked.
globalPendingCount
in interface TerracottaLocking
lock
- lock to queryTerracottaLocking.isLocked(LockID, LockLevel)
public int globalWaitingCount(LockID lock)
TerracottaLocking
This method has unusual semantics similar to isLocked.
globalWaitingCount
in interface TerracottaLocking
lock
- lock to queryTerracottaLocking.isLocked(LockID, LockLevel)
public boolean isLocked(LockID lock, LockLevel level)
TerracottaLocking
The semantics of this method are fairly loose when using a greedy locking policy. It is assumed that a client holding a greedy lock has in turn one holding thread of each possible type.
It is also important to note that the current locking implementation does not track concurrent lock holds.
isLocked
in interface TerracottaLocking
lock
- lock to querylevel
- level to querypublic boolean isLockedByCurrentThread(LockID lock, LockLevel level)
TerracottaLocking
It is also important to note that the current locking implementation does not track concurrent lock holds.
isLockedByCurrentThread
in interface TerracottaLocking
lock
- lock to querylevel
- level to querypublic int localHoldCount(LockID lock, LockLevel level)
TerracottaLocking
localHoldCount
in interface TerracottaLocking
lock
- lock to querylevel
- level to querypublic void lock(LockID lock, LockLevel level)
TerracottaLocking
lock
in interface TerracottaLocking
lock
- lock to act uponlevel
- level at which to lockpublic void lockInterruptibly(LockID lock, LockLevel level)
TerracottaLocking
lockInterruptibly
in interface TerracottaLocking
lock
- lock to act uponlevel
- level at which to lockpublic Notify notify(LockID lock, java.lang.Object waitObject)
TerracottaLocking
notify
in interface TerracottaLocking
lock
- lock to act uponwaitObject
- local vm object on which threads are waitingpublic Notify notifyAll(LockID lock, java.lang.Object waitObject)
TerracottaLocking
notifyAll
in interface TerracottaLocking
lock
- lock to act uponwaitObject
- local vm object on which threads are waitingpublic boolean tryLock(LockID lock, LockLevel level)
TerracottaLocking
Non-blocking try acquires will wait for a definitive server response - in this sense they are not truly non-blocking...
tryLock
in interface TerracottaLocking
lock
- lock to act uponlevel
- level at which to lock
true
if lockedpublic boolean tryLock(LockID lock, LockLevel level, long timeout)
TerracottaLocking
tryLock
in interface TerracottaLocking
lock
- lock to act uponlevel
- level at which to locktimeout
- maximum time to wait in milliseconds
true
if lockedpublic void unlock(LockID lock, LockLevel level)
TerracottaLocking
unlock
in interface TerracottaLocking
lock
- lock to act uponlevel
- at which to unlockpublic void wait(LockID lock, java.lang.Object waitObject) throws java.lang.InterruptedException
TerracottaLocking
wait
in interface TerracottaLocking
lock
- lock to act uponwaitObject
- local vm object to wait on
java.lang.InterruptedException
public void wait(LockID lock, java.lang.Object waitObject, long timeout) throws java.lang.InterruptedException
TerracottaLocking
wait
in interface TerracottaLocking
lock
- lock to act uponwaitObject
- local vm object to wait ontimeout
- maximum time to remain waiting
java.lang.InterruptedException
public void pinLock(LockID lock)
pinLock
in interface TerracottaLocking
public void unpinLock(LockID lock)
unpinLock
in interface TerracottaLocking
public boolean isLockedByCurrentThread(LockLevel level)
TerracottaLocking
It is also important to note that the current locking implementation does not track concurrent lock holds.
isLockedByCurrentThread
in interface TerracottaLocking
level
- level to querypublic void monitorEnter(LockID lock, LockLevel level)
Manager
monitorenter
.
monitorEnter
in interface Manager
public void monitorExit(LockID lock, LockLevel level)
Manager
monitorexit
.
Implementations of this method should prevent propagation of all
Throwable
instances. Instead Throwable
instances are logged and the client VM is
then terminated. If you don't want this behavior then don't call this method.
This behavior is there to ensure that exceptions thrown during transaction commit or clustered unlocking do not cause the thread to enter an infinite loop.
monitorExit
in interface Manager
public java.lang.String getUUID()
Manager
getUUID
in interface Manager
public SessionConfiguration getSessionConfiguration(java.lang.String appName)
Manager
getSessionConfiguration
in interface Manager
public void waitForAllCurrentTransactionsToComplete()
Manager
waitForAllCurrentTransactionsToComplete
in interface Manager
public void registerBeforeShutdownHook(java.lang.Runnable beforeShutdownHook)
Manager
registerBeforeShutdownHook
in interface Manager
public void registerStatisticRetrievalAction(StatisticRetrievalAction sra)
registerStatisticRetrievalAction
in interface Manager
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |