org.apache.commons.pool2.impl
Class AbandonedConfig

java.lang.Object
  extended by org.apache.commons.pool2.impl.AbandonedConfig

public class AbandonedConfig
extends Object

Configuration settings for abandoned object removal.

Since:
2.0
Version:
$Revision:$

Constructor Summary
AbandonedConfig()
           
 
Method Summary
 boolean getLogAbandoned()
          Flag to log stack traces for application code which abandoned an object.
 PrintWriter getLogWriter()
          Returns the log writer being used by this configuration to log information on abandoned objects.
 boolean getRemoveAbandonedOnBorrow()
          Flag to remove abandoned objects if they exceed the removeAbandonedTimeout when borrowObject is invoked.
 boolean getRemoveAbandonedOnMaintenance()
          Flag to remove abandoned objects if they exceed the removeAbandonedTimeout when pool maintenance (the "evictor") runs.
 int getRemoveAbandonedTimeout()
          Timeout in seconds before an abandoned object can be removed.
 boolean getUseUsageTracking()
          If the pool implements UsageTracking, should the pool record a stack trace every time a method is called on a pooled object and retain the most recent stack trace to aid debugging of abandoned objects?
 void setLogAbandoned(boolean logAbandoned)
          Sets the flag to log stack traces for application code which abandoned an object.
 void setLogWriter(PrintWriter logWriter)
          Sets the log writer to be used by this configuration to log information on abandoned objects.
 void setRemoveAbandonedOnBorrow(boolean removeAbandonedOnBorrow)
          Flag to remove abandoned objects if they exceed the removeAbandonedTimeout when borrowObject is invoked.
 void setRemoveAbandonedOnMaintenance(boolean removeAbandonedOnMaintenance)
          Flag to remove abandoned objects if they exceed the removeAbandonedTimeout when pool maintenance runs.
 void setRemoveAbandonedTimeout(int removeAbandonedTimeout)
          Sets the timeout in seconds before an abandoned object can be removed
 void setUseUsageTracking(boolean useUsageTracking)
          If the pool implements UsageTracking, configure whether the pool should record a stack trace every time a method is called on a pooled object and retain the most recent stack trace to aid debugging of abandoned objects.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbandonedConfig

public AbandonedConfig()
Method Detail

getRemoveAbandonedOnBorrow

public boolean getRemoveAbandonedOnBorrow()

Flag to remove abandoned objects if they exceed the removeAbandonedTimeout when borrowObject is invoked.

The default value is false.

If set to true, abandoned objects are removed by borrowObject if there are fewer than 2 idle objects available in the pool and getNumActive() > getMaxTotal() - 3

Returns:
true if abandoned objects are to be removed by borrowObject

setRemoveAbandonedOnBorrow

public void setRemoveAbandonedOnBorrow(boolean removeAbandonedOnBorrow)

Flag to remove abandoned objects if they exceed the removeAbandonedTimeout when borrowObject is invoked.

Parameters:
removeAbandonedOnBorrow - true means abandoned objects will be removed by borrowObject
See Also:
getRemoveAbandonedOnBorrow()

getRemoveAbandonedOnMaintenance

public boolean getRemoveAbandonedOnMaintenance()

Flag to remove abandoned objects if they exceed the removeAbandonedTimeout when pool maintenance (the "evictor") runs.

The default value is false.

If set to true, abandoned objects are removed by the pool maintenance thread when it runs. This setting has no effect unless maintenance is enabled by setting timeBetweenEvictionRunsMillis to a positive number.

Returns:
true if abandoned objects are to be removed by the evictor

setRemoveAbandonedOnMaintenance

public void setRemoveAbandonedOnMaintenance(boolean removeAbandonedOnMaintenance)

Flag to remove abandoned objects if they exceed the removeAbandonedTimeout when pool maintenance runs.

Parameters:
removeAbandonedOnMaintenance - true means abandoned objects will be removed by pool maintenance
See Also:
getRemoveAbandonedOnMaintenance()

getRemoveAbandonedTimeout

public int getRemoveAbandonedTimeout()

Timeout in seconds before an abandoned object can be removed.

The time of most recent use of an object is the maximum (latest) of TrackedUse.getLastUsed() (if this class of the object implements TrackedUse) and the time when the object was borrowed from the pool.

The default value is 300 seconds.

Returns:
the abandoned object timeout in seconds

setRemoveAbandonedTimeout

public void setRemoveAbandonedTimeout(int removeAbandonedTimeout)

Sets the timeout in seconds before an abandoned object can be removed

Setting this property has no effect if removeAbandonedOnBorrow and removeAbandonedOnMaintenance are both false.

Parameters:
removeAbandonedTimeout - new abandoned timeout in seconds
See Also:
getRemoveAbandonedTimeout()

getLogAbandoned

public boolean getLogAbandoned()
Flag to log stack traces for application code which abandoned an object. Defaults to false. Logging of abandoned objects adds overhead for every object created because a stack trace has to be generated.

Returns:
boolean true if stack trace logging is turned on for abandoned objects

setLogAbandoned

public void setLogAbandoned(boolean logAbandoned)
Sets the flag to log stack traces for application code which abandoned an object.

Parameters:
logAbandoned - true turns on abandoned stack trace logging
See Also:
getLogAbandoned()

getLogWriter

public PrintWriter getLogWriter()
Returns the log writer being used by this configuration to log information on abandoned objects. If not set, a PrintWriter based on System.out with the system default encoding is used.

Returns:
log writer in use

setLogWriter

public void setLogWriter(PrintWriter logWriter)
Sets the log writer to be used by this configuration to log information on abandoned objects.

Parameters:
logWriter - The new log writer

getUseUsageTracking

public boolean getUseUsageTracking()
If the pool implements UsageTracking, should the pool record a stack trace every time a method is called on a pooled object and retain the most recent stack trace to aid debugging of abandoned objects?

Returns:
true if usage tracking is enabled

setUseUsageTracking

public void setUseUsageTracking(boolean useUsageTracking)
If the pool implements UsageTracking, configure whether the pool should record a stack trace every time a method is called on a pooled object and retain the most recent stack trace to aid debugging of abandoned objects.

Parameters:
useUsageTracking - A value of true will enable the recording of a stack trace on every use of a pooled object


Copyright © 2001-2013 The Apache Software Foundation. All Rights Reserved.