public void run ( ) { // todo if (logger.isDebugEnabled()) { // logger.debug("start running PooledDataSourceCleaner"); // } state = STATE_CLEANER . RUNNING ; while ( state != STATE_CLEANER . SHUTDOWN ) { try { Thread . sleep ( interval * 1000 ) ; } catch ( InterruptedException e ) { // todo if (logger.isDebugEnabled()) { // logger.debug("Get interrupted, shutdown the PooledDataSourceCleaner"); // } break ; //get out if anyone interrupt } this . manager . cleanDataSources ( ) ; //if no pool at all, going to stop itself if ( this . manager . getDbmsPoolSize ( ) == 0 ) { // todo if (logger.isDebugEnabled()) { // logger.debug("Empty pools, shutdown the PooledDataSourceCleaner"); // } state = STATE_CLEANER . SHUTDOWN ; //stop spinning break ; //get out } } }
wake up and clean the pools if the pool has empty connection table .