|
||||||||||
| 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 Managerpublic void initForTests()
Manager
initForTests in interface Managerpublic void stop()
Manager
stop in interface Manager
public java.lang.Object lookupOrCreateRoot(java.lang.String name,
java.lang.Object object)
Manager
lookupOrCreateRoot in interface Managername - 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 Managername - 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 Managername - Root nameobject - Root object
public TCObjectExternal lookupExistingOrNull(java.lang.Object obj)
Manager
lookupExistingOrNull in interface Managerobj - The object instance
public void logicalInvoke(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] params)
Manager
logicalInvoke in interface Managerobject - The objectmethodName - The method to callparams - The parameters to the method
public boolean distributedMethodCall(java.lang.Object receiver,
java.lang.String method,
java.lang.Object[] params,
boolean runOnAllNodes)
Manager
distributedMethodCall in interface Managerreceiver - 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 Managerpublic void checkWriteAccess(java.lang.Object context)
Manager
checkWriteAccess in interface Managercontext - Context objectpublic boolean isManaged(java.lang.Object object)
Manager
isManaged in interface Managerobject - Instance
public boolean isLiteralInstance(java.lang.Object object)
isLiteralInstance in interface Managerliteral type, e.g., Class, Integer,
etc.public boolean isLiteralAutolock(java.lang.Object o)
isLiteralAutolock in interface Managerliteral type and is suitable for
cluster-wide locking,public int calculateDsoHashCode(java.lang.Object object)
Manager
calculateDsoHashCode in interface Managerpublic boolean isLogical(java.lang.Object object)
Manager
isLogical in interface Managerobject - Instance
public boolean isRoot(java.lang.reflect.Field field)
Manager
isRoot in interface Managerfield - Field
public java.lang.Object lookupRoot(java.lang.String name)
Manager
lookupRoot in interface Managername - 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 Managerobject - The objectlockObject - The lock objectmethodName - The method to callparams - The parameters to the methodpublic boolean isPhysicallyInstrumented(java.lang.Class clazz)
Manager
isPhysicallyInstrumented in interface Managerclazz - Class
public java.lang.String getClientID()
Manager
getClientID in interface Managerpublic TCLogger getLogger(java.lang.String loggerName)
Manager
getLogger in interface ManagerloggerName - Logger name
public TCObjectExternal lookupOrCreate(java.lang.Object obj)
Manager
lookupOrCreate in interface Managerobj - The object instance
public java.lang.Object lookupObject(ObjectID id)
Manager
lookupObject in interface Managerid - Object identifier
public java.lang.Object lookupObject(ObjectID id,
ObjectID parentContext)
Manager
lookupObject in interface Managerid - 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 Managerobj - 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 Managerpojo - ObjectfieldOffset - The index
public InstrumentationLogger getInstrumentationLogger()
Manager
getInstrumentationLogger in interface Managerpublic boolean overridesHashCode(java.lang.Object obj)
Manager
overridesHashCode in interface Manager
public void registerNamedLoader(NamedClassLoader loader,
java.lang.String webAppName)
Manager
registerNamedLoader in interface ManagerwebAppName - 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 Managerpublic TunneledDomainUpdater getTunneledDomainUpdater()
Manager
getTunneledDomainUpdater in interface Managerpublic DsoCluster getDsoCluster()
Manager
getDsoCluster in interface Managerpublic javax.management.MBeanServer getMBeanServer()
Manager
getMBeanServer in interface Managerpublic void preFetchObject(ObjectID id)
Manager
preFetchObject in interface Managerid - Object identifierpublic StatisticRetrievalAction getStatisticRetrievalActionInstance(java.lang.String name)
getStatisticRetrievalActionInstance in interface Managerpublic java.lang.Object getChangeApplicator(java.lang.Class clazz)
Manager
getChangeApplicator in interface Managerclazz - 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 TerracottaLockingpublic 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)
TerracottaLockingThis method has unusual semantics similar to isLocked.
globalHoldCount in interface TerracottaLockinglock - lock to querylevel - level to queryTerracottaLocking.isLocked(LockID, LockLevel)public int globalPendingCount(LockID lock)
TerracottaLockingThis method has unusual semantics similar to isLocked.
globalPendingCount in interface TerracottaLockinglock - lock to queryTerracottaLocking.isLocked(LockID, LockLevel)public int globalWaitingCount(LockID lock)
TerracottaLockingThis method has unusual semantics similar to isLocked.
globalWaitingCount in interface TerracottaLockinglock - lock to queryTerracottaLocking.isLocked(LockID, LockLevel)
public boolean isLocked(LockID lock,
LockLevel level)
TerracottaLockingThe 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 TerracottaLockinglock - lock to querylevel - level to query
public boolean isLockedByCurrentThread(LockID lock,
LockLevel level)
TerracottaLockingIt is also important to note that the current locking implementation does not track concurrent lock holds.
isLockedByCurrentThread in interface TerracottaLockinglock - lock to querylevel - level to query
public int localHoldCount(LockID lock,
LockLevel level)
TerracottaLocking
localHoldCount in interface TerracottaLockinglock - lock to querylevel - level to query
public void lock(LockID lock,
LockLevel level)
TerracottaLocking
lock in interface TerracottaLockinglock - lock to act uponlevel - level at which to lock
public void lockInterruptibly(LockID lock,
LockLevel level)
TerracottaLocking
lockInterruptibly in interface TerracottaLockinglock - lock to act uponlevel - level at which to lock
public Notify notify(LockID lock,
java.lang.Object waitObject)
TerracottaLocking
notify in interface TerracottaLockinglock - lock to act uponwaitObject - local vm object on which threads are waiting
public Notify notifyAll(LockID lock,
java.lang.Object waitObject)
TerracottaLocking
notifyAll in interface TerracottaLockinglock - lock to act uponwaitObject - local vm object on which threads are waiting
public boolean tryLock(LockID lock,
LockLevel level)
TerracottaLockingNon-blocking try acquires will wait for a definitive server response - in this sense they are not truly non-blocking...
tryLock in interface TerracottaLockinglock - lock to act uponlevel - level at which to lock
true if locked
public boolean tryLock(LockID lock,
LockLevel level,
long timeout)
TerracottaLocking
tryLock in interface TerracottaLockinglock - lock to act uponlevel - level at which to locktimeout - maximum time to wait in milliseconds
true if locked
public void unlock(LockID lock,
LockLevel level)
TerracottaLocking
unlock in interface TerracottaLockinglock - lock to act uponlevel - at which to unlock
public void wait(LockID lock,
java.lang.Object waitObject)
throws java.lang.InterruptedException
TerracottaLocking
wait in interface TerracottaLockinglock - 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 TerracottaLockinglock - lock to act uponwaitObject - local vm object to wait ontimeout - maximum time to remain waiting
java.lang.InterruptedExceptionpublic void pinLock(LockID lock)
pinLock in interface TerracottaLockingpublic void unpinLock(LockID lock)
unpinLock in interface TerracottaLockingpublic boolean isLockedByCurrentThread(LockLevel level)
TerracottaLockingIt is also important to note that the current locking implementation does not track concurrent lock holds.
isLockedByCurrentThread in interface TerracottaLockinglevel - level to query
public void monitorEnter(LockID lock,
LockLevel level)
Managermonitorenter.
monitorEnter in interface Manager
public void monitorExit(LockID lock,
LockLevel level)
Managermonitorexit.
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 Managerpublic java.lang.String getUUID()
Manager
getUUID in interface Managerpublic SessionConfiguration getSessionConfiguration(java.lang.String appName)
Manager
getSessionConfiguration in interface Managerpublic void waitForAllCurrentTransactionsToComplete()
Manager
waitForAllCurrentTransactionsToComplete in interface Managerpublic void registerBeforeShutdownHook(java.lang.Runnable beforeShutdownHook)
Manager
registerBeforeShutdownHook in interface Managerpublic void registerStatisticRetrievalAction(StatisticRetrievalAction sra)
registerStatisticRetrievalAction in interface Manager
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||