Search in sources :

Example 1 with HostConnection

use of com.ctrip.platform.dal.dao.datasource.cluster.HostConnection in project dal by ctripcorp.

the class DalConnectionPool method tryValidateClusterConnection.

private void tryValidateClusterConnection(PooledConnection conn) {
    if (clusterConnValidator != null) {
        boolean isValid = true;
        try {
            PoolConfiguration config = getPoolProperties();
            HostConnection connection;
            if (config instanceof DalExtendedPoolConfiguration)
                connection = new DefaultHostConnection(getConnection(conn), ((DalExtendedPoolConfiguration) config).getHost());
            else
                connection = new DefaultHostConnection(getConnection(conn), null);
            isValid = clusterConnValidator.validate(connection);
        } catch (Throwable t) {
            logger.warn("tryValidateClusterConnection exception", t);
        }
        if (!isValid) {
            release(conn);
            throw new InvalidConnectionException("Created connection is invalid");
        }
    }
}
Also used : InvalidConnectionException(com.ctrip.platform.dal.exceptions.InvalidConnectionException) PoolConfiguration(org.apache.tomcat.jdbc.pool.PoolConfiguration) DalExtendedPoolConfiguration(com.ctrip.platform.dal.dao.configure.DalExtendedPoolConfiguration) HostConnection(com.ctrip.platform.dal.dao.datasource.cluster.HostConnection) DefaultHostConnection(com.ctrip.platform.dal.dao.datasource.cluster.DefaultHostConnection) DefaultHostConnection(com.ctrip.platform.dal.dao.datasource.cluster.DefaultHostConnection) DalExtendedPoolConfiguration(com.ctrip.platform.dal.dao.configure.DalExtendedPoolConfiguration)

Example 2 with HostConnection

use of com.ctrip.platform.dal.dao.datasource.cluster.HostConnection in project dal by ctripcorp.

the class DataSourceValidator method tryValidateClusterConnection.

private void tryValidateClusterConnection(Connection connection, int validateAction) {
    if (clusterConnValidator != null) {
        boolean isValid = true;
        try {
            HostConnection conn;
            if (poolProperties instanceof DalExtendedPoolConfiguration)
                conn = new DefaultHostConnection(connection, ((DalExtendedPoolConfiguration) poolProperties).getHost());
            else
                conn = new DefaultHostConnection(connection, null);
            isValid = clusterConnValidator.validate(conn);
        } catch (Throwable t) {
            LOGGER.warn("tryValidateClusterConnection exception", t);
        }
        if (!isValid)
            throw new InvalidConnectionException("Borrowed connection is invalid");
    }
}
Also used : InvalidConnectionException(com.ctrip.platform.dal.exceptions.InvalidConnectionException) HostConnection(com.ctrip.platform.dal.dao.datasource.cluster.HostConnection) DefaultHostConnection(com.ctrip.platform.dal.dao.datasource.cluster.DefaultHostConnection) DefaultHostConnection(com.ctrip.platform.dal.dao.datasource.cluster.DefaultHostConnection) DalExtendedPoolConfiguration(com.ctrip.platform.dal.dao.configure.DalExtendedPoolConfiguration)

Aggregations

DalExtendedPoolConfiguration (com.ctrip.platform.dal.dao.configure.DalExtendedPoolConfiguration)2 DefaultHostConnection (com.ctrip.platform.dal.dao.datasource.cluster.DefaultHostConnection)2 HostConnection (com.ctrip.platform.dal.dao.datasource.cluster.HostConnection)2 InvalidConnectionException (com.ctrip.platform.dal.exceptions.InvalidConnectionException)2 PoolConfiguration (org.apache.tomcat.jdbc.pool.PoolConfiguration)1