use of com.ctrip.platform.dal.exceptions.InvalidConnectionException in project dal by ctripcorp.
the class DataSourceValidator method validate.
@Override
public boolean validate(Connection connection, int validateAction) {
long startTime = System.currentTimeMillis();
boolean isValid = false;
String transactionName = "";
try {
PoolConfiguration poolConfig = getPoolProperties();
DataSourceIdentity dataSourceId = poolConfig instanceof DalExtendedPoolConfiguration ? ((DalExtendedPoolConfiguration) poolConfig).getDataSourceId() : null;
String connUrl = ConnectionUtils.getConnectionUrl(connection, poolConfig.getUrl());
transactionName = String.format(CONNECTION_VALIDATE_CONNECTION_FORMAT, connUrl);
tryValidateClusterConnection(connection, validateAction);
isValid = validateConnection(connection, validateAction);
LOGGER.logTransaction(DalLogTypes.DAL_DATASOURCE, transactionName, String.format(IS_VALID_FORMAT, isValid) + " Connection url: " + poolConfig.getUrl(), LogUtils.buildPropertiesFromDataSourceId(dataSourceId), startTime);
if (!isValid) {
LOGGER.warn(IS_VALID_RETURN_INFO);
}
} catch (InvalidConnectionException e) {
handleException(isValid, e, transactionName, startTime);
throw e;
} catch (Throwable t) {
handleException(isValid, t, transactionName, startTime);
}
return isValid;
}
use of com.ctrip.platform.dal.exceptions.InvalidConnectionException 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");
}
}
}
use of com.ctrip.platform.dal.exceptions.InvalidConnectionException 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");
}
}
Aggregations