private static class WidgetPool.WorkArea
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.String,java.lang.Integer> |
namedPools
Pool names are global, so keep a map of them (key is always lowercased).
|
private java.util.Deque<java.util.Set<java.lang.Integer>> |
namedPoolScopes
Keep the scopes of named pools.
|
private java.util.Set<java.lang.Integer> |
persistentPools
A set containing the ID of all persistent pools.
|
private ProcedureManager.ProcedureHelper |
pm
Helper to use the ProcedureManager without any context local lookups.
|
private java.util.Map<WrappedResource,java.lang.Integer> |
poolForResource
Identify the pool to which a resource was added (if was pooled).
|
private java.util.Map<java.lang.Integer,WidgetPool.WidgetPoolData> |
pools
A registry of pools, per its ID.
|
private java.util.Map<java.lang.Object,java.util.Set<java.lang.Integer>> |
poolsPerExtProg
Collect all the created pools for an external program.
|
private java.util.Map<java.lang.Integer,java.lang.Object> |
procForPool
Identify the external procedure used to create the pool.
|
private TransactionManager.TransactionHelper |
tm
Helper to use the TM without any context local lookups.
|
private java.util.Set<java.lang.Integer> |
unnamedPools
A set containing the ID of all unnamed pools.
|
private java.util.Deque<java.util.Deque<java.lang.Integer>> |
unnamedPoolScopes
Keep the scopes of unnamed pools (only one can be active at a certain time).
|
private java.util.Map<java.lang.Object,java.util.Deque<java.lang.Integer>> |
unnamedProcPools
A map of the unnamed pools active at the time the persistent pool has executed.
|
Modifier | Constructor and Description |
---|---|
private |
WorkArea() |
Modifier and Type | Method and Description |
---|---|
void |
scopeFinished(java.lang.Object oThis,
boolean external,
boolean persistent)
Notify a scope has finished; invoked by
ProcedureManager 's scoping support when a
scope is finished. |
void |
scopeStart()
Notify a new scope has started; invoked by
ProcedureManager 's scoping support when
a new scope is started. |
private TransactionManager.TransactionHelper tm
private ProcedureManager.ProcedureHelper pm
private final java.util.Map<java.lang.Integer,WidgetPool.WidgetPoolData> pools
private final java.util.Map<java.lang.String,java.lang.Integer> namedPools
private final java.util.Set<java.lang.Integer> unnamedPools
private final java.util.Set<java.lang.Integer> persistentPools
private final java.util.Map<WrappedResource,java.lang.Integer> poolForResource
private final java.util.Map<java.lang.Integer,java.lang.Object> procForPool
private final java.util.Map<java.lang.Object,java.util.Set<java.lang.Integer>> poolsPerExtProg
private final java.util.Deque<java.util.Set<java.lang.Integer>> namedPoolScopes
private final java.util.Deque<java.util.Deque<java.lang.Integer>> unnamedPoolScopes
private final java.util.Map<java.lang.Object,java.util.Deque<java.lang.Integer>> unnamedProcPools
public void scopeStart()
ProcedureManager
's scoping support when
a new scope is started.
Notification will be performed only on the start of a top-level block (external program, procedure, function or trigger).
No default unnamed pool will be created. An unnamed pool must be explicitly created to be used.
public void scopeFinished(java.lang.Object oThis, boolean external, boolean persistent)
ProcedureManager
's scoping support when a
scope is finished.
This will delete the created non-persistent pools, but only if this is not a notification of an external procedure which was ran persistent.
Notification will be performed only on the end of a top-level block (external program, procedure, function or trigger).
oThis
- Current THIS-PROCEDURE handle.external
- Flag indicating that this is an external procedure.persistent
- Flag indicating that this external procedure is ran persistent.