package am.ik.categolj2.infra.db;
import lombok.extern.slf4j.Slf4j;
import org.apache.tomcat.jdbc.pool.Validator;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
@Slf4j
public class ConnectionValidator implements Validator {
@Override
public boolean validate(Connection connection, int validateAction) {
try (Statement statement = connection.createStatement()) {
log.trace("validate query connection={} action={}", connection, validateAction);
statement.setQueryTimeout(5);
statement.execute("SELECT 1");
} catch (SQLException e) {
if (log.isWarnEnabled()) {
log.warn("validating query failed! connection=" + connection + " action=" + validateAction, e);
}
return false;
}
return true;
}
}