List of usage examples for org.apache.commons.pool2.impl GenericObjectPoolConfig setMaxIdle
public void setMaxIdle(int maxIdle)
From source file:org.wso2.carbon.transport.jms.factory.JMSClientConnectionFactory.java
/** * Initialize the session pool with provided configuration. */// w ww . j av a 2s .c o m private void initSessionPool() { SessionPoolFactory sessionPoolFactory = new SessionPoolFactory(this); //create pool configurations GenericObjectPoolConfig config = new GenericObjectPoolConfig(); config.setMaxTotal(maxNumberOfConnections * maxSessionsPerConnection); //todo: set the ideal limit and make the idle sessions timedout config.setMaxIdle(maxNumberOfConnections * maxSessionsPerConnection); config.setBlockWhenExhausted(true); config.setMaxWaitMillis(poolWaitTimeout); //initialize the pool sessionPool = new GenericObjectPool<SessionWrapper>(sessionPoolFactory, config); }
From source file:org.zbus.pool.impl.CommonsPool2.java
public CommonsPool2(ObjectFactory<T> supportFactory, PoolConfig config) { Commons2PoolFactory factory = new Commons2PoolFactory(supportFactory); GenericObjectPoolConfig poolConfig = null; if (config.getSupport() instanceof GenericObjectPoolConfig) { poolConfig = (GenericObjectPoolConfig) config.getSupport(); } else {//from w w w . jav a 2 s. com poolConfig = new GenericObjectPoolConfig(); poolConfig.setMaxTotal(config.getMaxTotal()); poolConfig.setMaxIdle(config.getMaxIdle()); poolConfig.setMinIdle(config.getMinIdle()); poolConfig.setMinEvictableIdleTimeMillis(config.getMinEvictableIdleTimeMillis()); } this.support = new GenericObjectPool<T>(factory, poolConfig); }
From source file:rda.agent.client.AgentConnection.java
private void createObjectPool(Integer poolsize, String[] aghost) { GenericObjectPoolConfig conf = new GenericObjectPoolConfig(); conf.setMaxIdle(poolsize); conf.setMaxTotal(poolsize);//from w w w. j av a2s . co m this._pool = new GenericObjectPool<>(new AgentClientFactory(aghost[0], aghost[1], aghost[2]), conf); System.out.println("***********************************************************"); System.out.println("total:" + ((GenericObjectPool) _pool).getMaxTotal() + " , minIdle:" + ((GenericObjectPool) _pool).getMinIdle() + " , maxIdle:" + ((GenericObjectPool) _pool).getMaxIdle()); System.out.println("***********************************************************"); this.aghost = aghost; }
From source file:redis.client.jedis.CustomShardedJedisPoolTest.java
@BeforeClass public void init() throws InterruptedException { List<JedisShardInfo> shards = RedisConfigUtils.parseRedisServerList(TestConfigUtils.getRedisServers(), TestConfigUtils.getTimeoutMillis()); GenericObjectPoolConfig poolConfig = new JedisPoolConfig(); // ?/*from www. ja v a 2s.com*/ poolConfig.setMaxTotal(TestConfigUtils.getMaxTotalNum()); poolConfig.setMaxIdle(TestConfigUtils.getMaxIdleNum()); // poolConfig.setMinIdle(TestConfigUtils.getMinIdleNum()); poolConfig.setMinIdle(3); // local test // ?"" boolean lifo = TestConfigUtils.getPoolBehaviour() == PoolBehaviour.LIFO ? true : false; poolConfig.setLifo(lifo); // ? poolConfig.setBlockWhenExhausted(false); // // poolConfig.setBlockWhenExhausted(true); // poolConfig.setMaxWaitMillis(TimeUnit.MILLISECONDS.toMillis(10L)); // ""? poolConfig.setTestOnBorrow(false); poolConfig.setTestOnReturn(false); /* * "Evictor?"??"" */ poolConfig.setTestWhileIdle(true); // ?5????? // poolConfig.setTimeBetweenEvictionRunsMillis(TimeUnit.SECONDS.toMillis(TestConfigUtils.getTimeBetweenEvictionRunsSeconds())); poolConfig.setTimeBetweenEvictionRunsMillis(TimeUnit.SECONDS.toMillis(2L)); // local test // ??Evictor // poolConfig.setTimeBetweenEvictionRunsMillis(-1L); // local test // ? // poolConfig.setNumTestsPerEvictionRun(TestConfigUtils.getNumTestsPerEvictionRun()); poolConfig.setNumTestsPerEvictionRun(3); // local test // ? poolConfig.setSoftMinEvictableIdleTimeMillis( TimeUnit.MINUTES.toMillis(TestConfigUtils.getMinEvictableIdleTimeMinutes())); // ??(?) // ? poolConfig.setMinEvictableIdleTimeMillis( TimeUnit.MINUTES.toMillis(TestConfigUtils.getMaxEvictableIdleTimeMinutes())); this.shardedJedisPool = new CustomShardedJedisPool(poolConfig, shards, (int) TimeUnit.SECONDS.toMillis(1), 2); }
From source file:stroom.pool.AbstractPoolCacheBean.java
@Override protected ObjectPool<PoolItem<K, V>> create(final K key) { final GenericObjectPoolConfig config = new GenericObjectPoolConfig(); config.setMaxTotal(1000);//from ww w .j a v a 2 s . c o m config.setMaxIdle(1000); config.setBlockWhenExhausted(false); return new GenericObjectPool<>(new ObjectFactory<>(this, key), config); }
From source file:stroom.statistics.server.sql.SQLStatisticEventStore.java
private GenericObjectPoolConfig getObjectPoolConfig() { final GenericObjectPoolConfig config = new GenericObjectPoolConfig(); // Max number of idle items .... same as our pool size config.setMaxIdle(poolSize); // Pool size// w w w . jav a 2s . co m config.setMaxTotal(poolSize); // Returns the minimum amount of time an object may sit idle in the pool // before it is eligible for eviction by the idle object evictor // Here if it is idle for 10 min's it will simply return It will also // return by validateObject if it is simple more than 10min old config.setMinEvictableIdleTimeMillis(poolAgeMsThreshold); // Check for idle objects never .... we will do this with task sytstem config.setTimeBetweenEvictionRunsMillis(0); // Must cause other threads to block to wait for a object config.setBlockWhenExhausted(true); config.setJmxEnabled(false); // Check item on just before returning to pool config.setTestOnReturn(true); return config; }
From source file:survey.data.RepositoryFactory.java
public RepositoryFactory(Properties properties) { assert properties != null; _properties = properties;//from ww w .java 2 s . c o m _localCache = new LocalCache(properties); String redisHost = _properties == null ? null : _properties.getProperty("redis.host"); if (redisHost == null) { redisHost = "localhost"; } int redisPort; try { redisPort = Integer.parseInt(_properties.getProperty("redis.port")); } catch (Throwable e) { redisPort = 6379; } // Anedotally, the web service will eventually fail due to a broken // connection to Redis, unless a pool is used. GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setBlockWhenExhausted(false); // Fail if out of sockets. poolConfig.setLifo(true); poolConfig.setMaxIdle(50); // All 50 sockets can be briefly idle. poolConfig.setMaxTotal(50); // After 50 sockets used then fail. poolConfig.setMinEvictableIdleTimeMillis(600000); // 10 minutes even if few sockets are idle. poolConfig.setMinIdle(2); // Keep 2 sockets ready. poolConfig.setSoftMinEvictableIdleTimeMillis(120000); // 2 minutes unless insufficient sockets are idle. poolConfig.setTestOnBorrow(true); poolConfig.setTestOnReturn(false); poolConfig.setTestWhileIdle(false); poolConfig.setTimeBetweenEvictionRunsMillis(300000); // Check for idle sockets every 5 minutes. _jedisPool = new JedisPool(poolConfig, redisHost, redisPort); // Monitor changes in Redis. _subscribeService = Executors.newSingleThreadExecutor(); final JedisPubSub jedisPubSub = new JedisPubSub() { @Override public void onMessage(String channelName, String notificationKey) { // _logger.info(String.format("onMessage(%s, %s)", channelName, notificationKey)); // See the publish() method below. String[] splitKey = notificationKey.split(":", 4); assert splitKey.length >= 4; String magic = splitKey[0]; assert "survey".equals(magic); String namespaceName = splitKey[1]; String surveyPath = splitKey[2]; long turnout; try { turnout = Long.parseLong(splitKey[3]); } catch (NumberFormatException e) { turnout = 0; } onVoteAdded(namespaceName, surveyPath, turnout); } }; _subscribeService.submit(new Runnable() { @Override public void run() { _logger.info("subscribe thread running"); int sleepMillis = 0; for (;;) { Jedis jedis = null; try { if (sleepMillis != 0) { Thread.sleep(sleepMillis); } jedis = _jedisPool.getResource(); jedis.subscribe(jedisPubSub, _CHANNEL_NAME); } catch (InterruptedException e) { _logger.info("subscribe thread interrupted"); break; } catch (Throwable e) { // e.g. if there is a Jedis exception, sleep 1 minute and try again. sleepMillis = 60000; } finally { if (jedis != null) { _jedisPool.returnResourceObject(jedis); } } } } }); _logger = LoggerFactory.getLogger(RepositoryFactory.class); _logger.info("created repository factory (singleton)"); }
From source file:vn.ethicconsultant.commons.memcachedpool2.Test.Test.java
public static void main(String[] args) throws Exception { String host = "192.168.10.225"; int port = 11211; MemcachedPool memcachedPool = new MemcachedPool(); MemcachedPoolableFactory memcachedPoolableFactory = new MemcachedPoolableFactory(host, port); GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setMaxWaitMillis(500);/* ww w. j a va 2s. c om*/ poolConfig.setMaxTotal(10); poolConfig.setMaxIdle(10); //poolConfig.setTestOnBorrow(true); //poolConfig.setTestOnCreate(true); memcachedPool.initPool(poolConfig, memcachedPoolableFactory); MemcachedClient mc = memcachedPool.getResource(); mc.set("hung1334", 3600, "heo"); mc.set("hung1335", 3600, "heo"); mc.set("hung1336", 3600, "heo"); memcachedPool.returnResource(mc); mc = memcachedPool.getResource(); System.out.println(mc.get("hung1334")); memcachedPool.returnResource(mc); mc = memcachedPool.getResource(); System.out.println(mc.get("hung1335")); memcachedPool.returnResource(mc); mc = memcachedPool.getResource(); System.out.println(mc.get("hung1336")); memcachedPool.returnResource(mc); }
From source file:za.co.wilderness.WildernessPoolingDriver.java
private void setupDriver() throws Exception { String jdbcDriverName = "com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource"; try {/*from w w w. j av a2s.co m*/ java.lang.Class.forName(jdbcDriverName).newInstance(); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { //System.out.println("Error when attempting to obtain DB Driver: " + jdbcDriverName + " on "+ new Date().toString() + e.getMessage()); logger.log(Level.SEVERE, "Error when attempting to obtain DB Driver: " + jdbcDriverName + " on " + new Date().toString(), e); throw new Exception(e); } ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(this.connectURI, this.properties); PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, null); GenericObjectPoolConfig genConfig = new GenericObjectPoolConfig(); genConfig.setMaxIdle(this.config.getMaxIdle()); genConfig.setMaxTotal(this.config.getMaxActive()); genConfig.setMinIdle(this.config.getMinIdle()); genConfig.setMaxWaitMillis(this.config.getMaxWaitMillis()); genConfig.setTimeBetweenEvictionRunsMillis(5000); genConfig.setTestWhileIdle(true); ObjectPool<PoolableConnection> connectionPool = new GenericObjectPool<>(poolableConnectionFactory, genConfig); // Set the factory's pool property to the owning pool poolableConnectionFactory.setPool(connectionPool); // // Finally, we create the PoolingDriver itself... // Class.forName("org.apache.commons.dbcp2.PoolingDriver"); PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:"); //System.out.println("Driver : " + driver.toString()); logger.log(Level.FINE, "Driver : " + driver.toString()); // // ...and register our pool with it. // driver.registerPool(EXTERNAL_SERVICE.name(), connectionPool); // // Now we can just use the connect string "jdbc:apache:commons:dbcp:example" // to access our pool of Connections. // }