List of usage examples for org.apache.commons.pool.impl GenericObjectPool borrowObject
public Object borrowObject() throws Exception
Borrows an object from the pool.
If there is an idle instance available in the pool, then either the most-recently returned (if #getLifo() lifo == true) or "oldest" (lifo == false) instance sitting idle in the pool will be activated and returned.
From source file:TestObjectPool.java
public static void main(String args[]) throws Exception { GenericObjectPool pool = new GenericObjectPool(); pool.setFactory(new EmployeeFactory()); /*First way of initializing pool pool.setMinIdle(5);/*from w w w . j a v a2 s .c o m*/ pool.setTimeBetweenEvictionRunsMillis(500); Thread.currentThread().sleep(600);*/ /* second, and preferred way */ for(int i = 0; i < 5; ++i) { pool.addObject(); } // pool.setTestOnReturn(true); pool.setMinEvictableIdleTimeMillis(1000); pool.setTimeBetweenEvictionRunsMillis(600); System.err.println("Number of employees in pool: " + pool.getNumIdle()); Thread.currentThread().sleep(1500); Employee employee = (Employee)pool.borrowObject(); employee.setName("Fred Flintstone"); employee.doWork(); System.err.println("Employee: " + employee); pool.returnObject(employee); System.err.println("Number of employees in pool: " + pool.getNumIdle()); }
From source file:agiato.cassandra.data.DataManager.java
/** * @param connectionPool//from w w w .j a va 2 s .c o m * @return * @throws Exception */ public Connector borrowConnection(GenericObjectPool connectionPool) throws Exception { return (Connector) connectionPool.borrowObject(); }
From source file:agiato.cassandra.data.DataManager.java
/** * @param configFile// ww w . ja v a 2s. com * @param forceCreateKeySpace * @throws Exception */ public DataManager(String configFile, boolean forceCreateKeySpace) throws Exception { MetaDataManager.initialize(configFile); MetaDataManager metaDatamanager = MetaDataManager.instance(); Cluster cluster = metaDatamanager.getCluster(); List<HostConnections> hostConnections = new ArrayList<HostConnections>(); for (Host host : cluster.getHosts()) { hostConnections.add(new HostConnections(host, cluster.getPoolConfig())); } //load balancer String loadBalancerClass = cluster.getLoadBalancerClass(); Class<? extends LoadBalancer> clazz = Class.forName(loadBalancerClass).asSubclass(LoadBalancer.class); loadBalancer = clazz.newInstance(); loadBalancer.setHostConnections(hostConnections); GenericObjectPool connectionPool = getConnectionPool(); Connector connector = (Connector) connectionPool.borrowObject(); Cassandra.Client client = connector.openConnection(); String keySpaceName = metaDatamanager.getKeySpace().getName(); try { List<KsDef> ksDefs = client.describe_keyspaces(); boolean exists = false; for (KsDef ksDef : ksDefs) { if (ksDef.getName().equals(keySpaceName)) { exists = true; break; } } //drop existing key space if (exists && forceCreateKeySpace) { client.system_drop_keyspace(keySpaceName); exists = false; } //create keyspace if it does not exist if (!exists) { KsDef ks = new KsDef(); ks.setName(keySpaceName); ks.setReplication_factor(metaDatamanager.getKeySpace().getReplicationFactor()); ks.setStrategy_class(metaDatamanager.getKeySpace().getReplicaPlacementStrategy()); List<CfDef> cfDefs = new ArrayList<CfDef>(); for (ColumnFamilyDef colFam : metaDatamanager.getKeySpace().getColumnFamilies()) { CfDef cfDef = new CfDef(); cfDef.setKeyspace(metaDatamanager.getKeySpace().getName()); cfDef.setName(colFam.getName()); cfDef.setColumn_type(colFam.getColumnType()); cfDef.setComparator_type(colFam.getCompareWith()); if (colFam.isSuperColumn()) { cfDef.setSubcomparator_type(colFam.getCompareSubcolumnsWith()); } if (colFam.isKeysCachedSet()) { cfDef.setKey_cache_size(colFam.getKeysCached()); } if (colFam.isRowsCachedSet()) { cfDef.setRow_cache_size(colFam.getRowsCached()); } cfDefs.add(cfDef); } ks.setCf_defs(cfDefs); client.system_add_keyspace(ks); System.out.println("keyspace created : " + keySpaceName); } else { System.out.println("keyspace already exists : " + keySpaceName); } //create cf for indexes KsDef ksDef = client.describe_keyspace(keySpaceName); Set<String> colFamSet = new HashSet<String>(); if (null != metaDatamanager.getIndexes()) { for (IndexDef indexDef : metaDatamanager.getIndexes()) { String cfName = indexDef.getColFamilyName(); List<CfDef> cfDefs = ksDef.getCf_defs(); boolean cfExists = false; for (CfDef cfDef : cfDefs) { if (cfDef.getName().equals(cfName)) { cfExists = true; break; } } String colFamName = indexDef.getColFamilyName(); if (!cfExists && !colFamSet.contains(colFamName)) { CfDef cfDef = new CfDef(); cfDef.setKeyspace(keySpaceName); cfDef.setName(colFamName); boolean isSuperCol = indexDef.isCatIndexName(); cfDef.setColumn_type(isSuperCol ? "Super" : "Standard"); cfDef.setComparator_type( indexDef.getIndexedDataType() == IndexDef.TYPE_STRING ? "UTF8Type" : "LongType"); if (isSuperCol) { cfDef.setSubcomparator_type( indexDef.getStoredDataType() == IndexDef.TYPE_STRING ? "UTF8Type" : "LongType"); } cfDef.setKey_cache_size(indexDef.getIndexKeysCached()); cfDef.setRow_cache_size(indexDef.getIndexRowsCached()); client.system_add_column_family(cfDef); colFamSet.add(colFamName); } } } //asociate key space loadBalancer.associateKeySpace(keySpaceName); } finally { client.set_keyspace(keySpaceName); returnConnection(connector); } }
From source file:Pool162.java
public void testWhenExhaustedBlockInterupt() throws Exception { GenericObjectPool pool = new GenericObjectPool(new SimpleFactory()); //Set this value to 1 to get the deadlock. No deadlock when it sets to //other values. pool.setMaxActive(2);//ww w . j ava 2 s . co m pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_BLOCK); Object obj1 = pool.borrowObject(); // Make sure one object was obtained if (obj1 == null) { throw new Exception("obj1 is null"); } // Create a separate thread to try and borrow another object WaitingTestThread wtt = new WaitingTestThread(pool, 200); wtt.start(); // Give wtt time to start Thread.sleep(200); //bug trigger #1 wtt.interrupt(); //bug trigger #1 // Give interrupt time to take effect Thread.sleep(200); // Return object to the pool pool.returnObject(obj1); Object obj2 = null; obj2 = pool.borrowObject(); if (obj2 == null) { throw new Exception("obj2 is null"); } pool.returnObject(obj2); pool.close(); }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericObjectPool.java
public void testExceptionOnPassivateDuringReturn() throws Exception { SimpleFactory factory = new SimpleFactory(); GenericObjectPool pool = new GenericObjectPool(factory); Object obj = pool.borrowObject(); factory.setThrowExceptionOnPassivate(true); pool.returnObject(obj);//from www . j av a 2 s . c o m assertEquals(0, pool.getNumIdle()); pool.close(); }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericObjectPool.java
public void testExceptionOnActivateDuringBorrow() throws Exception { SimpleFactory factory = new SimpleFactory(); GenericObjectPool pool = new GenericObjectPool(factory); Object obj1 = pool.borrowObject(); Object obj2 = pool.borrowObject(); pool.returnObject(obj1);// www .ja v a 2 s . c o m pool.returnObject(obj2); factory.setThrowExceptionOnActivate(true); factory.setEvenValid(false); // Activation will now throw every other time // First attempt throws, but loop continues and second succeeds Object obj = pool.borrowObject(); assertEquals(1, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); pool.returnObject(obj); factory.setValid(false); // Validation will now fail on activation when borrowObject returns // an idle instance, and then when attempting to create a new instance try { obj1 = pool.borrowObject(); fail("Expecting NoSuchElementException"); } catch (NoSuchElementException ex) { // expected } assertEquals(0, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericObjectPool.java
public void testExceptionOnDestroyDuringBorrow() throws Exception { SimpleFactory factory = new SimpleFactory(); factory.setThrowExceptionOnDestroy(true); GenericObjectPool pool = new GenericObjectPool(factory); pool.setTestOnBorrow(true);// w w w.j a v a2 s.c o m pool.borrowObject(); factory.setValid(false); // Make validation fail on next borrow attempt try { pool.borrowObject(); fail("Expecting NoSuchElementException"); } catch (NoSuchElementException ex) { // expected } assertEquals(1, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericObjectPool.java
public void testExceptionOnDestroyDuringReturn() throws Exception { SimpleFactory factory = new SimpleFactory(); factory.setThrowExceptionOnDestroy(true); GenericObjectPool pool = new GenericObjectPool(factory); pool.setTestOnReturn(true);/* w w w.ja v a 2 s .com*/ Object obj1 = pool.borrowObject(); pool.borrowObject(); factory.setValid(false); // Make validation fail pool.returnObject(obj1); assertEquals(1, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericObjectPool.java
/** * Tests addObject contention between ensureMinIdle triggered by the Evictor * with minIdle > 0 and borrowObject. *//*from w w w . j av a2 s. c o m*/ public void testEvictAddObjects() throws Exception { SimpleFactory factory = new SimpleFactory(); factory.setMakeLatency(300); factory.setMaxActive(2); GenericObjectPool pool = new GenericObjectPool(factory); pool.setMaxActive(2); pool.setMinIdle(1); pool.borrowObject(); // numActive = 1, numIdle = 0 // Create a test thread that will run once and try a borrow after // 150ms fixed delay TestThread borrower = new TestThread(pool, 1, 150, false); Thread borrowerThread = new Thread(borrower); // Set evictor to run in 100 ms - will create idle instance pool.setTimeBetweenEvictionRunsMillis(100); borrowerThread.start(); // Off to the races borrowerThread.join(); assertTrue(!borrower.failed()); pool.close(); }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericObjectPool.java
public void testSetFactoryWithNoActiveObjects() throws Exception { GenericObjectPool pool = new GenericObjectPool(); pool.setMaxIdle(10);//from ww w. j av a 2 s.c om pool.setFactory(new SimpleFactory()); Object obj = pool.borrowObject(); pool.returnObject(obj); assertEquals(1, pool.getNumIdle()); pool.setFactory(new SimpleFactory()); assertEquals(0, pool.getNumIdle()); }