我正在使用 Spring Kafka 消费者读取 Kafka 主题之外的消息。我将这些持久保存在 Oracle DB 中。每当出现数据库连接错误时,我都想执行重试。我正在使用 Spring JDBC 连接到 Oracle DB。如果我需要仅重试 JDBC 连接问题,我需要添加哪些异常类列表。
private static Map<Class<? extends Throwable>, Boolean> retryableExceptions;
static{
retryableExceptions = new HashMap<>();
retryableExceptions.put(Exception.class, true);
}
protected RetryPolicy retryPolicy() {
SimpleRetryPolicy policy = new SimpleRetryPolicy(maxRetryAttempts, retryableExceptions);
return policy;
}
最佳答案
我认为你只需要这个:
/**
* Data access exception thrown when a resource fails completely:
* for example, if we can't connect to a database using JDBC.
*
* @author Rod Johnson
* @author Thomas Risberg
*/
@SuppressWarnings("serial")
public class DataAccessResourceFailureException extends NonTransientDataAccessResourceException {
只要您使用 JdbcTemplate
执行 JDBC 操作,连接的任何低级错误都会包装到此 DataAccessResourceFailureException
或其子类中。
关于java - Spring JDBC - Kafka Consumer 的可重试异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46574188/