Class AbandonedTrace
- java.lang.Object
-
- org.datanucleus.store.rdbms.datasource.dbcp2.AbandonedTrace
-
- All Implemented Interfaces:
TrackedUse
- Direct Known Subclasses:
DelegatingConnection
,DelegatingResultSet
,DelegatingStatement
public class AbandonedTrace extends java.lang.Object implements TrackedUse
Tracks db connection usage for recovering and reporting abandoned db connections.The JDBC Connection, Statement, and ResultSet classes extend this class.
- Since:
- 2.0
-
-
Field Summary
Fields Modifier and Type Field Description private long
lastUsedMillis
Last time this connection was used.private java.util.List<java.lang.ref.WeakReference<AbandonedTrace>>
traceList
A list of objects created by children of this object.
-
Constructor Summary
Constructors Constructor Description AbandonedTrace()
Creates a new AbandonedTrace without config and without doing abandoned tracing.AbandonedTrace(AbandonedTrace parent)
Constructs a new AbandonedTrace with a parent object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addTrace(AbandonedTrace trace)
Adds an object to the list of objects being traced.protected void
clearTrace()
Clears the list of objects being traced by this object.long
getLastUsed()
Gets the last time this object was used in milliseconds.protected java.util.List<AbandonedTrace>
getTrace()
Gets a list of objects being traced by this object.private void
init(AbandonedTrace parent)
Initializes abandoned tracing for this object.protected void
removeThisTrace(java.lang.Object source)
Removes this object the source object is tracing.protected void
removeTrace(AbandonedTrace trace)
Removes a child object this object is tracing.protected void
setLastUsed()
Sets the time this object was last used to the current time in milliseconds.protected void
setLastUsed(long lastUsedMillis)
Sets the time in milliseconds this object was last used.
-
-
-
Field Detail
-
traceList
private final java.util.List<java.lang.ref.WeakReference<AbandonedTrace>> traceList
A list of objects created by children of this object.
-
lastUsedMillis
private volatile long lastUsedMillis
Last time this connection was used.
-
-
Constructor Detail
-
AbandonedTrace
public AbandonedTrace()
Creates a new AbandonedTrace without config and without doing abandoned tracing.
-
AbandonedTrace
public AbandonedTrace(AbandonedTrace parent)
Constructs a new AbandonedTrace with a parent object.- Parameters:
parent
- AbandonedTrace parent object.
-
-
Method Detail
-
init
private void init(AbandonedTrace parent)
Initializes abandoned tracing for this object.- Parameters:
parent
- AbandonedTrace parent object.
-
getLastUsed
public long getLastUsed()
Gets the last time this object was used in milliseconds.- Specified by:
getLastUsed
in interfaceTrackedUse
- Returns:
- long time in milliseconds.
-
setLastUsed
protected void setLastUsed()
Sets the time this object was last used to the current time in milliseconds.
-
setLastUsed
protected void setLastUsed(long lastUsedMillis)
Sets the time in milliseconds this object was last used.- Parameters:
lastUsedMillis
- time in milliseconds.
-
addTrace
protected void addTrace(AbandonedTrace trace)
Adds an object to the list of objects being traced.- Parameters:
trace
- AbandonedTrace object to add.
-
clearTrace
protected void clearTrace()
Clears the list of objects being traced by this object.
-
getTrace
protected java.util.List<AbandonedTrace> getTrace()
Gets a list of objects being traced by this object.- Returns:
- List of objects.
-
removeTrace
protected void removeTrace(AbandonedTrace trace)
Removes a child object this object is tracing.- Parameters:
trace
- AbandonedTrace object to remove.
-
removeThisTrace
protected void removeThisTrace(java.lang.Object source)
Removes this object the source object is tracing.- Parameters:
source
- The object tracing- Since:
- 2.7.0
-
-