Example usage for org.apache.commons.pool2.impl GenericKeyedObjectPoolConfig setTestOnCreate

List of usage examples for org.apache.commons.pool2.impl GenericKeyedObjectPoolConfig setTestOnCreate

Introduction

In this page you can find the example usage for org.apache.commons.pool2.impl GenericKeyedObjectPoolConfig setTestOnCreate.

Prototype

public void setTestOnCreate(boolean testOnCreate) 

Source Link

Document

Set the value for the testOnCreate configuration attribute for pools created with this configuration instance.

Usage

From source file:com.google.devtools.build.lib.worker.WorkerModule.java

@Override
public void beforeCommand(Command command, CommandEnvironment env) {
    this.env = env;
    env.getEventBus().register(this);

    if (workers == null) {
        Path logDir = env.getRuntime().getOutputBase().getRelative("worker-logs");
        try {//from  w w  w  .j a v a  2 s .  c om
            logDir.createDirectory();
        } catch (IOException e) {
            env.getReporter().handle(Event.error("Could not create directory for worker logs: " + logDir));
        }

        GenericKeyedObjectPoolConfig config = new GenericKeyedObjectPoolConfig();

        // It's better to re-use a worker as often as possible and keep it hot, in order to profit
        // from JIT optimizations as much as possible.
        config.setLifo(true);

        // Check for & deal with idle workers every 5 seconds.
        config.setTimeBetweenEvictionRunsMillis(5 * 1000);

        // Always test the liveliness of worker processes.
        config.setTestOnBorrow(true);
        config.setTestOnCreate(true);
        config.setTestOnReturn(true);
        config.setTestWhileIdle(true);

        // Don't limit the total number of worker processes, as otherwise the pool might be full of
        // e.g. Java workers and could never accommodate another request for a different kind of
        // worker.
        config.setMaxTotal(-1);

        workers = new WorkerPool(new WorkerFactory(), config);
        workers.setReporter(env.getReporter());
        workers.setLogDirectory(logDir);
    }
}

From source file:org.springframework.ldap.pool2.factory.PooledContextSource.java

private GenericKeyedObjectPoolConfig getConfig(PoolConfig poolConfig) {
    GenericKeyedObjectPoolConfig objectPoolConfig = new GenericKeyedObjectPoolConfig();

    objectPoolConfig.setMaxTotalPerKey(poolConfig.getMaxTotalPerKey());
    objectPoolConfig.setMaxTotal(poolConfig.getMaxTotal());

    objectPoolConfig.setMaxIdlePerKey(poolConfig.getMaxIdlePerKey());
    objectPoolConfig.setMinIdlePerKey(poolConfig.getMinIdlePerKey());

    objectPoolConfig.setTestWhileIdle(poolConfig.isTestWhileIdle());
    objectPoolConfig.setTestOnReturn(poolConfig.isTestOnReturn());
    objectPoolConfig.setTestOnCreate(poolConfig.isTestOnCreate());
    objectPoolConfig.setTestOnBorrow(poolConfig.isTestOnBorrow());

    objectPoolConfig.setTimeBetweenEvictionRunsMillis(poolConfig.getTimeBetweenEvictionRunsMillis());
    objectPoolConfig.setEvictionPolicyClassName(poolConfig.getEvictionPolicyClassName());
    objectPoolConfig.setMinEvictableIdleTimeMillis(poolConfig.getMinEvictableIdleTimeMillis());
    objectPoolConfig.setNumTestsPerEvictionRun(poolConfig.getNumTestsPerEvictionRun());
    objectPoolConfig.setSoftMinEvictableIdleTimeMillis(poolConfig.getSoftMinEvictableIdleTimeMillis());

    objectPoolConfig.setJmxEnabled(poolConfig.isJmxEnabled());
    objectPoolConfig.setJmxNameBase(poolConfig.getJmxNameBase());
    objectPoolConfig.setJmxNamePrefix(poolConfig.getJmxNamePrefix());

    objectPoolConfig.setMaxWaitMillis(poolConfig.getMaxWaitMillis());

    objectPoolConfig.setFairness(poolConfig.isFairness());
    objectPoolConfig.setBlockWhenExhausted(poolConfig.isBlockWhenExhausted());
    objectPoolConfig.setLifo(poolConfig.isLifo());

    return objectPoolConfig;
}