Class EvictionTimer


  • class EvictionTimer
    extends java.lang.Object

    Provides a shared idle object eviction timer for all pools. This class wraps the standard Timer and keeps track of how many pools are using it. If no pools are using the timer, it is canceled. This prevents a thread being left running which, in application server environments, can lead to memory leads and/or prevent applications from shutting down or reloading cleanly.

    This class has package scope to prevent its inclusion in the pool public API. The class declaration below should *not* be changed to public.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.Timer _timer
      Timer instance
      private static int _usageCount
      Static usage count tracker
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private EvictionTimer()
      Prevent instantiation
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) static void cancel​(java.util.TimerTask task)
      Remove the specified eviction task from the timer.
      (package private) static void schedule​(java.util.TimerTask task, long delay, long period)
      Add the specified eviction task to the timer.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _timer

        private static java.util.Timer _timer
        Timer instance
      • _usageCount

        private static int _usageCount
        Static usage count tracker
    • Constructor Detail

      • EvictionTimer

        private EvictionTimer()
        Prevent instantiation
    • Method Detail

      • schedule

        static void schedule​(java.util.TimerTask task,
                             long delay,
                             long period)
        Add the specified eviction task to the timer. Tasks that are added with a call to this method *must* call cancel(TimerTask) to cancel the task to prevent memory and/or thread leaks in application server environments.
        Parameters:
        task - Task to be scheduled
        delay - Delay in milliseconds before task is executed
        period - Time in milliseconds between executions
      • cancel

        static void cancel​(java.util.TimerTask task)
        Remove the specified eviction task from the timer.
        Parameters:
        task - Task to be scheduled