package org.zalando.catwatch.backend.repo.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
public class DatabasePing {
private static Logger logger = LoggerFactory.getLogger(DatabasePing.class);
private static Boolean databaseAvailable;
public static boolean isDatabaseAvailable(JdbcTemplate jdbcTemplate) {
if (databaseAvailable == null) {
try {
// http://stackoverflow.com/questions/847246/what-is-the-best-way-to-ping-a-database-via-jdbc
jdbcTemplate.execute("select 1;");
databaseAvailable = true;
} catch (RuntimeException e) {
logger.info("Database not available", e);
databaseAvailable = false;
}
}
return databaseAvailable;
}
}