Example usage for org.apache.commons.pool.impl GenericKeyedObjectPool setNumTestsPerEvictionRun

List of usage examples for org.apache.commons.pool.impl GenericKeyedObjectPool setNumTestsPerEvictionRun

Introduction

In this page you can find the example usage for org.apache.commons.pool.impl GenericKeyedObjectPool setNumTestsPerEvictionRun.

Prototype

public synchronized void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) 

Source Link

Document

Sets the number of objects to examine during each run of the idle object evictor thread (if any).

Usage

From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java

private void checkEvictionOrder(boolean lifo) throws Exception {
    SimpleFactory factory = new SimpleFactory();
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory);
    pool.setNumTestsPerEvictionRun(2);
    pool.setMinEvictableIdleTimeMillis(100);
    pool.setLifo(lifo);/*from   w w  w  . j ava  2s. c om*/

    for (int i = 0; i < 3; i++) {
        Integer key = new Integer(i);
        for (int j = 0; j < 5; j++) {
            pool.addObject(key);
        }
    }

    // Make all evictable
    Thread.sleep(200);

    /* 
     * Initial state (Key, Object) pairs in order of age:
     * 
     * (0,0), (0,1), (0,2), (0,3), (0,4)
     * (1,5), (1,6), (1,7), (1,8), (1,9)
     * (2,10), (2,11), (2,12), (2,13), (2,14)
     */

    pool.evict(); // Kill (0,0),(0,1)
    assertEquals(3, pool.getNumIdle(zero));
    Object obj = pool.borrowObject(zero);
    assertTrue(lifo ? obj.equals("04") : obj.equals("02"));
    assertEquals(2, pool.getNumIdle(zero));
    obj = pool.borrowObject(zero);
    assertTrue(obj.equals("03"));
    assertEquals(1, pool.getNumIdle(zero));

    pool.evict(); // Kill remaining 0 survivor and (1,5)
    assertEquals(0, pool.getNumIdle(zero));
    assertEquals(4, pool.getNumIdle(one));
    obj = pool.borrowObject(one);
    assertTrue(lifo ? obj.equals("19") : obj.equals("16"));
    assertEquals(3, pool.getNumIdle(one));
    obj = pool.borrowObject(one);
    assertTrue(lifo ? obj.equals("18") : obj.equals("17"));
    assertEquals(2, pool.getNumIdle(one));

    pool.evict(); // Kill remaining 1 survivors
    assertEquals(0, pool.getNumIdle(one));
    pool.evict(); // Kill (2,10), (2,11)
    assertEquals(3, pool.getNumIdle(two));
    obj = pool.borrowObject(two);
    assertTrue(lifo ? obj.equals("214") : obj.equals("212"));
    assertEquals(2, pool.getNumIdle(two));
    pool.evict(); // All dead now
    assertEquals(0, pool.getNumIdle(two));

    pool.evict(); // Should do nothing - make sure no exception
    pool.evict();

    // Reload
    pool.setMinEvictableIdleTimeMillis(500);
    factory.counter = 0; // Reset counter
    for (int i = 0; i < 3; i++) {
        Integer key = new Integer(i);
        for (int j = 0; j < 5; j++) {
            pool.addObject(key);
        }
        Thread.sleep(200);
    }

    // 0's are evictable, others not 
    pool.evict(); // Kill (0,0),(0,1)
    assertEquals(3, pool.getNumIdle(zero));
    pool.evict(); // Kill (0,2),(0,3)
    assertEquals(1, pool.getNumIdle(zero));
    pool.evict(); // Kill (0,4), leave (1,5)
    assertEquals(0, pool.getNumIdle(zero));
    assertEquals(5, pool.getNumIdle(one));
    assertEquals(5, pool.getNumIdle(two));
    pool.evict(); // (1,6), (1,7)
    assertEquals(5, pool.getNumIdle(one));
    assertEquals(5, pool.getNumIdle(two));
    pool.evict(); // (1,8), (1,9)
    assertEquals(5, pool.getNumIdle(one));
    assertEquals(5, pool.getNumIdle(two));
    pool.evict(); // (2,10), (2,11)
    assertEquals(5, pool.getNumIdle(one));
    assertEquals(5, pool.getNumIdle(two));
    pool.evict(); // (2,12), (2,13)
    assertEquals(5, pool.getNumIdle(one));
    assertEquals(5, pool.getNumIdle(two));
    pool.evict(); // (2,14), (1,5)
    assertEquals(5, pool.getNumIdle(one));
    assertEquals(5, pool.getNumIdle(two));
    Thread.sleep(200); // Ones now timed out
    pool.evict(); // kill (1,6), (1,7) - (1,5) missed
    assertEquals(3, pool.getNumIdle(one));
    assertEquals(5, pool.getNumIdle(two));
    obj = pool.borrowObject(one);
    assertTrue(lifo ? obj.equals("19") : obj.equals("15"));
}

From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java

public void testSettersAndGetters() throws Exception {
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool();
    {/*from www. j av a2  s  . c  o  m*/
        pool.setFactory(new SimpleFactory());
    }
    {
        pool.setMaxActive(123);
        assertEquals(123, pool.getMaxActive());
    }
    {
        pool.setMaxIdle(12);
        assertEquals(12, pool.getMaxIdle());
    }
    {
        pool.setMaxWait(1234L);
        assertEquals(1234L, pool.getMaxWait());
    }
    {
        pool.setMinEvictableIdleTimeMillis(12345L);
        assertEquals(12345L, pool.getMinEvictableIdleTimeMillis());
    }
    {
        pool.setNumTestsPerEvictionRun(11);
        assertEquals(11, pool.getNumTestsPerEvictionRun());
    }
    {
        pool.setTestOnBorrow(true);
        assertTrue(pool.getTestOnBorrow());
        pool.setTestOnBorrow(false);
        assertTrue(!pool.getTestOnBorrow());
    }
    {
        pool.setTestOnReturn(true);
        assertTrue(pool.getTestOnReturn());
        pool.setTestOnReturn(false);
        assertTrue(!pool.getTestOnReturn());
    }
    {
        pool.setTestWhileIdle(true);
        assertTrue(pool.getTestWhileIdle());
        pool.setTestWhileIdle(false);
        assertTrue(!pool.getTestWhileIdle());
    }
    {
        pool.setTimeBetweenEvictionRunsMillis(11235L);
        assertEquals(11235L, pool.getTimeBetweenEvictionRunsMillis());
    }
    {
        pool.setWhenExhaustedAction(GenericKeyedObjectPool.WHEN_EXHAUSTED_BLOCK);
        assertEquals(GenericObjectPool.WHEN_EXHAUSTED_BLOCK, pool.getWhenExhaustedAction());
        pool.setWhenExhaustedAction(GenericKeyedObjectPool.WHEN_EXHAUSTED_FAIL);
        assertEquals(GenericObjectPool.WHEN_EXHAUSTED_FAIL, pool.getWhenExhaustedAction());
        pool.setWhenExhaustedAction(GenericKeyedObjectPool.WHEN_EXHAUSTED_GROW);
        assertEquals(GenericObjectPool.WHEN_EXHAUSTED_GROW, pool.getWhenExhaustedAction());
    }
}