protected boolean returnConnection(Connection<CL> connection) { if (connection != null) { if (connection.getHostConnectionPool().isReconnecting() || connection.getOperationCount() > config.getMaxOperationsPerConnection()) { closeConnection(connection); } else { ConnectionException ce = connection.getLastException(); if (ce != null && (ce instanceof IsDeadConnectionException || ce instanceof IsTimeoutException)) { closeConnection(connection); } else if (!this.idleConnections.offer(connection)) { closeConnection(connection); } else { this.monitor.incConnectionReturned(connection.getHostConnectionPool().getHost()); } } return true; } return false; }
protected <T> ConnectionPool<T> createConnectionPool(ConnectionFactory<T> connectionFactory) { ConnectionPool<T> connectionPool = null; // HACK to get the CqlFamilyFactory working with AstyanaxContext if (connectionFactory.getClass().getName().contains("CqlFamilyFactory")) { return new ConnectionPoolProxy<T>(cpConfig, connectionFactory, monitor); } switch (asConfig.getConnectionPoolType()) { case TOKEN_AWARE: connectionPool = new TokenAwareConnectionPoolImpl<T>(cpConfig, connectionFactory, monitor); break; case BAG: connectionPool = new BagOfConnectionsConnectionPoolImpl<T>(cpConfig, connectionFactory, monitor); break; case ROUND_ROBIN: default: connectionPool = new RoundRobinConnectionPoolImpl<T>(cpConfig, connectionFactory, monitor); break; } if (hostSupplier != null) { connectionPool.setHosts(hostSupplier.get()); } return connectionPool; }
protected boolean returnConnection(Connection<CL> connection) { if (connection != null) { if (connection.getHostConnectionPool().isReconnecting() || connection.getOperationCount() > config.getMaxOperationsPerConnection()) { closeConnection(connection); } else { ConnectionException ce = connection.getLastException(); if (ce != null && (ce instanceof IsDeadConnectionException || ce instanceof IsTimeoutException)) { closeConnection(connection); } else if (!this.idleConnections.offer(connection)) { closeConnection(connection); } else { this.monitor.incConnectionReturned(connection.getHostConnectionPool().getHost()); } } return true; } return false; }