List of usage examples for org.apache.commons.pool2.impl GenericObjectPoolConfig setLifo
public void setLifo(boolean lifo)
From source file:com.heliosapm.streams.collector.ds.AbstractDataSourceFactory.java
/** * Reads the generic object pool configuration from the passed JSONObject * @param jsonConfig The json configuration for the current data source * @return the pool config//from w w w . j av a 2 s.c om */ protected GenericObjectPoolConfig getPoolConfig(final JsonNode jsonConfig) { if (jsonConfig == null) throw new IllegalArgumentException("The passed JSONObject was null"); final GenericObjectPoolConfig config = new GenericObjectPoolConfig(); if (jsonConfig.has("maxPoolSize")) config.setMaxTotal(jsonConfig.get("maxPoolSize").intValue()); if (jsonConfig.has("maxPoolIdle")) config.setMaxIdle(jsonConfig.get("maxPoolIdle").intValue()); if (jsonConfig.has("minPoolIdle")) config.setMinIdle(jsonConfig.get("minPoolIdle").intValue()); if (jsonConfig.has("registerMbeans")) config.setJmxEnabled(jsonConfig.get("registerMbeans").booleanValue()); if (jsonConfig.has("fair")) config.setFairness(jsonConfig.get("fair").booleanValue()); if (jsonConfig.has("lifo")) config.setLifo(jsonConfig.get("lifo").booleanValue()); if (jsonConfig.has("maxWait")) config.setMaxWaitMillis(jsonConfig.get("maxWait").longValue()); final boolean testWhileIdle; if (jsonConfig.has("testWhileIdle")) { testWhileIdle = jsonConfig.get("testWhileIdle").booleanValue(); } else { testWhileIdle = false; } if (testWhileIdle) { config.setTestWhileIdle(true); long testPeriod = 15000; if (jsonConfig.has("testPeriod")) { testPeriod = jsonConfig.get("testPeriod").longValue(); } config.setTimeBetweenEvictionRunsMillis(testPeriod); } else { config.setTestWhileIdle(false); } // ALWAYS test on borrow config.setTestOnBorrow(true); config.setTestOnCreate(true); config.setTestOnReturn(false); return config; }
From source file:net.ymate.platform.persistence.redis.impl.RedisModuleCfg.java
@SuppressWarnings("unchecked") protected RedisDataSourceCfgMeta __doParserDataSourceCfgMeta(String dsName, Map<String, String> _moduleCfgs) throws Exception { RedisDataSourceCfgMeta _meta = null; ///* w w w .j a v a2 s .co m*/ Map<String, String> _dataSourceCfgs = __doGetCfgs(_moduleCfgs, "ds." + dsName + "."); // // if (!_dataSourceCfgs.isEmpty()) { String _connectionType = StringUtils.defaultIfBlank(_dataSourceCfgs.get("connection_type"), "default"); String _masterServerName = StringUtils.defaultIfBlank(_dataSourceCfgs.get("master_server_name"), "default"); List<ServerMeta> _servers = new ArrayList<ServerMeta>(); String[] _serverNames = StringUtils .split(StringUtils.defaultIfBlank(_dataSourceCfgs.get("server_name_list"), "default"), "|"); Map<String, String> _tmpCfgs = null; if (_serverNames != null) { for (String _serverName : _serverNames) { _tmpCfgs = __doGetCfgs(_dataSourceCfgs, "server." + _serverName + "."); if (!_tmpCfgs.isEmpty()) { ServerMeta _servMeta = new ServerMeta(); _servMeta.setName(_serverName); _servMeta.setHost(StringUtils.defaultIfBlank(_tmpCfgs.get("host"), "localhost")); _servMeta.setPort( BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("port"), "6379")).toIntValue()); _servMeta.setTimeout(BlurObject .bind(StringUtils.defaultIfBlank(_tmpCfgs.get("timeout"), "2000")).toIntValue()); _servMeta.setWeight( BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("weight"), "1")).toIntValue()); _servMeta.setDatabase(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("database"), "0")) .toIntValue()); _servMeta.setClientName(StringUtils.trimToNull(_tmpCfgs.get("client_name"))); _servMeta.setPassword(StringUtils.trimToNull(_tmpCfgs.get("password"))); // boolean _pwdEncrypted = new BlurObject(_tmpCfgs.get("password_encrypted")).toBooleanValue(); // if (_pwdEncrypted && StringUtils.isNotBlank(_servMeta.getPassword()) && StringUtils.isNotBlank(_tmpCfgs.get("password_class"))) { IPasswordProcessor _proc = ClassUtils.impl(_dataSourceCfgs.get("password_class"), IPasswordProcessor.class, this.getClass()); if (_proc != null) { _servMeta.setPassword(_proc.decrypt(_servMeta.getPassword())); } } // _servers.add(_servMeta); } } } // GenericObjectPoolConfig _poolConfig = new GenericObjectPoolConfig(); _tmpCfgs = __doGetCfgs(_dataSourceCfgs, "pool."); if (!_tmpCfgs.isEmpty()) { _poolConfig.setMinIdle(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("min_idle"), GenericObjectPoolConfig.DEFAULT_MIN_IDLE + "")).toIntValue()); _poolConfig.setMaxIdle(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("max_idle"), GenericObjectPoolConfig.DEFAULT_MAX_IDLE + "")).toIntValue()); _poolConfig.setMaxTotal(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("max_total"), GenericObjectPoolConfig.DEFAULT_MAX_TOTAL + "")).toIntValue()); _poolConfig .setBlockWhenExhausted( BlurObject .bind(StringUtils.defaultIfBlank(_tmpCfgs.get("block_when_exhausted"), GenericObjectPoolConfig.DEFAULT_BLOCK_WHEN_EXHAUSTED + "")) .toBooleanValue()); _poolConfig.setFairness(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("fairness"), GenericObjectPoolConfig.DEFAULT_FAIRNESS + "")).toBooleanValue()); _poolConfig.setJmxEnabled(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("jmx_enabled"), GenericObjectPoolConfig.DEFAULT_JMX_ENABLE + "")).toBooleanValue()); _poolConfig.setJmxNameBase(StringUtils.defaultIfBlank(_tmpCfgs.get("jmx_name_base"), GenericObjectPoolConfig.DEFAULT_JMX_NAME_BASE)); _poolConfig.setJmxNamePrefix(StringUtils.defaultIfBlank(_tmpCfgs.get("jmx_name_prefix"), GenericObjectPoolConfig.DEFAULT_JMX_NAME_PREFIX)); _poolConfig.setEvictionPolicyClassName( StringUtils.defaultIfBlank(_tmpCfgs.get("eviction_policy_class_name"), GenericObjectPoolConfig.DEFAULT_EVICTION_POLICY_CLASS_NAME)); _poolConfig.setLifo(BlurObject.bind( StringUtils.defaultIfBlank(_tmpCfgs.get("lifo"), GenericObjectPoolConfig.DEFAULT_LIFO + "")) .toBooleanValue()); _poolConfig.setMaxWaitMillis(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("max_wait_millis"), GenericObjectPoolConfig.DEFAULT_MAX_WAIT_MILLIS + "")).toLongValue()); _poolConfig .setMinEvictableIdleTimeMillis(BlurObject .bind(StringUtils.defaultIfBlank(_tmpCfgs.get("min_evictable_idle_time_millis"), GenericObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS + "")) .toLongValue()); _poolConfig.setSoftMinEvictableIdleTimeMillis(BlurObject .bind(StringUtils.defaultIfBlank(_tmpCfgs.get("soft_min_evictable_idle_time_millis"), GenericObjectPoolConfig.DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS + "")) .toLongValue()); _poolConfig.setTestOnBorrow(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("test_on_borrow"), GenericObjectPoolConfig.DEFAULT_TEST_ON_BORROW + "")).toBooleanValue()); _poolConfig.setTestOnReturn(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("test_on_return"), GenericObjectPoolConfig.DEFAULT_TEST_ON_RETURN + "")).toBooleanValue()); _poolConfig.setTestOnCreate(BlurObject.bind(StringUtils.defaultIfBlank(_tmpCfgs.get("test_on_create"), GenericObjectPoolConfig.DEFAULT_TEST_ON_CREATE + "")).toBooleanValue()); _poolConfig .setTestWhileIdle( BlurObject .bind(StringUtils.defaultIfBlank(_tmpCfgs.get("test_while_idle"), GenericObjectPoolConfig.DEFAULT_TEST_WHILE_IDLE + "")) .toBooleanValue()); _poolConfig .setNumTestsPerEvictionRun( BlurObject .bind(StringUtils.defaultIfBlank(_tmpCfgs.get("num_tests_per_eviction_run"), GenericObjectPoolConfig.DEFAULT_NUM_TESTS_PER_EVICTION_RUN + "")) .toIntValue()); _poolConfig .setTimeBetweenEvictionRunsMillis(BlurObject .bind(StringUtils.defaultIfBlank(_tmpCfgs.get("time_between_eviction_runs_millis"), GenericObjectPoolConfig.DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS + "")) .toLongValue()); } _meta = new RedisDataSourceCfgMeta(dsName, _connectionType, _masterServerName, _servers, _poolConfig); // } return _meta; }
From source file:org.apache.directory.ldap.client.template.LdapConnectionTemplateTest.java
@Test public void testDIRAPI_202() throws Exception { // test requested by https://issues.apache.org/jira/browse/DIRAPI-202 LdapConnectionConfig config = new LdapConnectionConfig(); config.setLdapHost(Network.LOOPBACK_HOSTNAME); config.setLdapPort(createLdapConnectionPoolRule.getLdapServer().getPort()); config.setName("uid=admin,ou=system"); config.setCredentials("secret"); DefaultLdapConnectionFactory factory = new DefaultLdapConnectionFactory(config); factory.setTimeOut(30000);//w w w. ja va 2s . c o m // optional, values below are defaults GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setLifo(true); poolConfig.setMaxTotal(8); poolConfig.setMaxIdle(8); poolConfig.setMaxWaitMillis(-1L); poolConfig.setMinEvictableIdleTimeMillis(1000L * 60L * 30L); poolConfig.setMinIdle(0); poolConfig.setNumTestsPerEvictionRun(3); poolConfig.setSoftMinEvictableIdleTimeMillis(-1L); poolConfig.setTestOnBorrow(false); poolConfig.setTestOnReturn(false); poolConfig.setTestWhileIdle(false); poolConfig.setTimeBetweenEvictionRunsMillis(-1L); poolConfig.setBlockWhenExhausted(GenericObjectPoolConfig.DEFAULT_BLOCK_WHEN_EXHAUSTED); LdapConnectionTemplate ldapConnectionTemplate = new LdapConnectionTemplate( new LdapConnectionPool(new ValidatingPoolableLdapConnectionFactory(factory), poolConfig)); assertNotNull(ldapConnectionTemplate); List<Muppet> muppets = ldapConnectionTemplate.search("ou=people,dc=example,dc=com", "(objectClass=inetOrgPerson)", SearchScope.ONELEVEL, Muppet.getEntryMapper()); assertNotNull(muppets); assertEquals(6, muppets.size()); muppets = ldapConnectionTemplate.search("ou=people,dc=example,dc=com", equal("objectClass", "inetOrgPerson"), SearchScope.ONELEVEL, Muppet.getEntryMapper()); assertNotNull(muppets); assertEquals(6, muppets.size()); }
From source file:org.apache.directory.server.core.integ.CreateLdapConnectionPoolRule.java
private LdapConnectionPool createLdapConnectionPool(LdapServer ldapServer, Class<? extends PooledObjectFactory<LdapConnection>> factoryClass, Class<? extends LdapConnectionFactory> connectionFactoryClass, Class<? extends LdapConnectionValidator> validatorClass) { LdapConnectionConfig config = new LdapConnectionConfig(); config.setLdapHost(Network.LOOPBACK_HOSTNAME); config.setLdapPort(ldapServer.getPort()); config.setName("uid=admin,ou=system"); config.setCredentials("secret"); if ((createLdapConnectionPool.additionalBinaryAttributes() != null) && (createLdapConnectionPool.additionalBinaryAttributes().length > 0)) { DefaultConfigurableBinaryAttributeDetector binaryAttributeDetector = new DefaultConfigurableBinaryAttributeDetector(); binaryAttributeDetector.addBinaryAttribute(createLdapConnectionPool.additionalBinaryAttributes()); config.setBinaryAttributeDetector(binaryAttributeDetector); }/*from w ww . j a v a2 s .c o m*/ GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setLifo(createLdapConnectionPool.lifo()); poolConfig.setMaxTotal(createLdapConnectionPool.maxActive()); poolConfig.setMaxIdle(createLdapConnectionPool.maxIdle()); poolConfig.setMaxWaitMillis(createLdapConnectionPool.maxWait()); poolConfig.setMinEvictableIdleTimeMillis(createLdapConnectionPool.minEvictableIdleTimeMillis()); poolConfig.setMinIdle(createLdapConnectionPool.minIdle()); poolConfig.setNumTestsPerEvictionRun(createLdapConnectionPool.numTestsPerEvictionRun()); poolConfig.setSoftMinEvictableIdleTimeMillis(createLdapConnectionPool.softMinEvictableIdleTimeMillis()); poolConfig.setTestOnBorrow(createLdapConnectionPool.testOnBorrow()); poolConfig.setTestOnReturn(createLdapConnectionPool.testOnReturn()); poolConfig.setTestWhileIdle(createLdapConnectionPool.testWhileIdle()); poolConfig.setTimeBetweenEvictionRunsMillis(createLdapConnectionPool.timeBetweenEvictionRunsMillis()); poolConfig.setBlockWhenExhausted(createLdapConnectionPool.whenExhaustedAction() == 1); try { Constructor<? extends LdapConnectionFactory> constructor = connectionFactoryClass .getConstructor(LdapConnectionConfig.class); ldapConnectionFactory = constructor.newInstance(config); } catch (Exception e) { throw new IllegalArgumentException( "invalid connectionFactoryClass " + connectionFactoryClass.getName() + ": " + e.getMessage(), e); } try { Method timeoutSetter = connectionFactoryClass.getMethod("setTimeOut", Long.TYPE); if (timeoutSetter != null) { timeoutSetter.invoke(ldapConnectionFactory, createLdapConnectionPool.timeout()); } } catch (Exception e) { throw new IllegalArgumentException("invalid connectionFactoryClass " + connectionFactoryClass.getName() + ", missing setTimeOut(long): " + e.getMessage(), e); } try { Constructor<? extends PooledObjectFactory<LdapConnection>> constructor = factoryClass .getConstructor(LdapConnectionFactory.class); poolableLdapConnectionFactory = constructor.newInstance(ldapConnectionFactory); } catch (Exception e) { throw new IllegalArgumentException( "invalid factoryClass " + factoryClass.getName() + ": " + e.getMessage(), e); } try { Method setValidator = factoryClass.getMethod("setValidator", LdapConnectionValidator.class); if (setValidator != null) { setValidator.invoke(poolableLdapConnectionFactory, validatorClass.newInstance()); } } catch (Exception e) { throw new IllegalArgumentException("invalid connectionFactoryClass " + connectionFactoryClass.getName() + ", missing setTimeOut(long): " + e.getMessage(), e); } return new LdapConnectionPool(poolableLdapConnectionFactory, poolConfig); }
From source file:org.cloudgraph.hbase.connect.HBaseConnectionManager.java
private HBaseConnectionManager() { this.config = CloudGraphContext.instance().getConfig(); GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setMaxTotal(/*w w w . j a v a 2 s . c o m*/ this.config.getInt(CONNECTION_POOL_MAX_TOTAL, GenericObjectPoolConfig.DEFAULT_MAX_TOTAL)); if (this.config.get(CONNECTION_POOL_MAX_SIZE) != null) poolConfig.setMaxTotal( this.config.getInt(CONNECTION_POOL_MAX_SIZE, GenericObjectPoolConfig.DEFAULT_MAX_TOTAL)); poolConfig .setMaxIdle(this.config.getInt(CONNECTION_POOL_MAX_IDLE, GenericObjectPoolConfig.DEFAULT_MAX_IDLE)); poolConfig .setMinIdle(this.config.getInt(CONNECTION_POOL_MIN_IDLE, GenericObjectPoolConfig.DEFAULT_MIN_IDLE)); if (this.config.get(CONNECTION_POOL_MIN_SIZE) != null) poolConfig.setMinIdle( this.config.getInt(CONNECTION_POOL_MIN_SIZE, GenericObjectPoolConfig.DEFAULT_MIN_IDLE)); poolConfig.setLifo(this.config.getBoolean(CONNECTION_POOL_LIFO, GenericObjectPoolConfig.DEFAULT_LIFO)); poolConfig.setMaxWaitMillis(this.config.getLong(CONNECTION_POOL_MAX_WAIT_MILLIS, GenericObjectPoolConfig.DEFAULT_MAX_WAIT_MILLIS)); // eviction poolConfig.setTimeBetweenEvictionRunsMillis( this.config.getLong(CONNECTION_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLIS, GenericObjectPoolConfig.DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS)); poolConfig.setEvictionPolicyClassName(this.config.get(CONNECTION_POOL_EVICTION_POLICY_CLASS_NAME, GenericObjectPoolConfig.DEFAULT_EVICTION_POLICY_CLASS_NAME)); poolConfig.setMinEvictableIdleTimeMillis(this.config.getLong(CONNECTION_POOL_MIN_EVICTABLE_IDLE_TIME_MILLIS, GenericObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS)); poolConfig.setSoftMinEvictableIdleTimeMillis( this.config.getLong(CONNECTION_POOL_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS, GenericObjectPoolConfig.DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS)); poolConfig.setNumTestsPerEvictionRun(this.config.getInt(CONNECTION_POOL_NUM_TESTS_PER_EVICTION_RUN, GenericObjectPoolConfig.DEFAULT_NUM_TESTS_PER_EVICTION_RUN)); poolConfig.setTestOnCreate(this.config.getBoolean(CONNECTION_POOL_TEST_ON_CREATE, GenericObjectPoolConfig.DEFAULT_TEST_ON_CREATE)); poolConfig.setTestOnBorrow(this.config.getBoolean(CONNECTION_POOL_TEST_ON_BORROW, GenericObjectPoolConfig.DEFAULT_TEST_ON_BORROW)); poolConfig.setTestOnReturn(this.config.getBoolean(CONNECTION_POOL_TEST_ON_RETURN, GenericObjectPoolConfig.DEFAULT_TEST_ON_RETURN)); poolConfig.setTestWhileIdle(this.config.getBoolean(CONNECTION_POOL_TEST_WHILE_IDLE, GenericObjectPoolConfig.DEFAULT_TEST_WHILE_IDLE)); poolConfig.setBlockWhenExhausted(this.config.getBoolean(CONNECTION_POOL_BLOCK_WHEN_EXHAUSTED, GenericObjectPoolConfig.DEFAULT_BLOCK_WHEN_EXHAUSTED)); poolConfig.setJmxEnabled(this.config.getBoolean(CONNECTION_POOL_JMX_ENABLED, false)); poolConfig.setJmxNameBase( this.config.get(CONNECTION_POOL_JMX_NAME_BASE, GenericObjectPoolConfig.DEFAULT_JMX_NAME_BASE)); poolConfig.setJmxNamePrefix( this.config.get(CONNECTION_POOL_JMX_NAME_PREFIX, GenericObjectPoolConfig.DEFAULT_JMX_NAME_PREFIX)); PooledConnectionFactory factory = new PooledConnectionFactory(this.config); this.pool = new GenericObjectPool<Connection>(factory, poolConfig); factory.setPool(pool); log.info("created connection pool[ " + "\n\tMaxTotal:\t\t" + poolConfig.getMaxTotal() + "\n\tMinIdle:\t\t" + poolConfig.getMinIdle() + "\n\tMaxIdle:\t\t" + poolConfig.getMaxIdle() + "\n\tLifo:\t\t" + poolConfig.getLifo() + "\n\tMaxWaitMillis:\t\t" + poolConfig.getMaxWaitMillis() + "\n\tTimeBetweenEvictionRunsMillis:\t\t" + poolConfig.getTimeBetweenEvictionRunsMillis() + "\n\tEvictionPolicyClassName:\t\t" + poolConfig.getEvictionPolicyClassName() + "\n\tMinEvictableIdleTimeMillis:\t\t" + poolConfig.getMinEvictableIdleTimeMillis() + "\n\tSoftMinEvictableIdleTimeMillis:\t\t" + poolConfig.getSoftMinEvictableIdleTimeMillis() + "\n\tNumTestsPerEvictionRun:\t\t" + poolConfig.getNumTestsPerEvictionRun() + "\n...]"); }
From source file:org.jooby.jedis.Redis.java
private GenericObjectPoolConfig poolConfig(final Config config) { GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setBlockWhenExhausted(config.getBoolean("blockWhenExhausted")); poolConfig.setEvictionPolicyClassName(config.getString("evictionPolicyClassName")); poolConfig.setJmxEnabled(config.getBoolean("jmxEnabled")); poolConfig.setJmxNamePrefix(config.getString("jmxNamePrefix")); poolConfig.setLifo(config.getBoolean("lifo")); poolConfig.setMaxIdle(config.getInt("maxIdle")); poolConfig.setMaxTotal(config.getInt("maxTotal")); poolConfig.setMaxWaitMillis(config.getDuration("maxWait", TimeUnit.MILLISECONDS)); poolConfig.setMinEvictableIdleTimeMillis(config.getDuration("minEvictableIdle", TimeUnit.MILLISECONDS)); poolConfig.setMinIdle(config.getInt("minIdle")); poolConfig.setNumTestsPerEvictionRun(config.getInt("numTestsPerEvictionRun")); poolConfig.setSoftMinEvictableIdleTimeMillis( config.getDuration("softMinEvictableIdle", TimeUnit.MILLISECONDS)); poolConfig.setTestOnBorrow(config.getBoolean("testOnBorrow")); poolConfig.setTestOnReturn(config.getBoolean("testOnReturn")); poolConfig.setTestWhileIdle(config.getBoolean("testWhileIdle")); poolConfig.setTimeBetweenEvictionRunsMillis( config.getDuration("timeBetweenEvictionRuns", TimeUnit.MILLISECONDS)); return poolConfig; }
From source file:org.power.commons.redis.RedisClient.java
private GenericObjectPoolConfig getPoolConfig() { GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); // maxIdle?pool size???????redis poolConfig.setMaxTotal(this.maxTotal); if (this.maxIdle > 0) { poolConfig.setMaxIdle(this.maxIdle); }//from w w w .java 2 s . c o m poolConfig.setMaxWaitMillis(this.maxWait); /* if (this.whenExhaustedAction >= 0 && this.whenExhaustedAction < 3) { poolConfig.whenExhaustedAction = this.whenExhaustedAction; }*/ poolConfig.setBlockWhenExhausted(this.blockWhenExhausted); poolConfig.setTestOnBorrow(this.testOnBorrow); poolConfig.setMinIdle(this.minIdle); poolConfig.setTestOnReturn(testOnReturn); poolConfig.setTestWhileIdle(testWhileIdle); poolConfig.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); poolConfig.setNumTestsPerEvictionRun(numTestsPerEvictionRun); poolConfig.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); poolConfig.setSoftMinEvictableIdleTimeMillis(softMinEvictableIdleTimeMillis); poolConfig.setLifo(lifo); return poolConfig; }
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 .java 2 s.co m*/ 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:survey.data.RepositoryFactory.java
public RepositoryFactory(Properties properties) { assert properties != null; _properties = properties;/*from w w w . j a v a2 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)"); }