2017-10-04 8 views
1

Ich benutze einen Spring Kafka Consumer, um Nachrichten aus Kafka Thema zu lesen. Ich beharre diese in Oracle DB. Wenn ein DB-Verbindungsfehler auftritt, möchte ich einen Wiederholungsversuch durchführen. Ich verwende Spring JDBC, um eine Verbindung zu Oracle DB herzustellen.Spring JDBC - Retriable Ausnahmen für Kafka Consumer

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; 
} 

Antwort

1

Ich glaube, Sie brauchen nur nur diese:

/** 
* 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 { 

Solange Sie JdbcTemplate verwenden JDBC-Operation auszuführen, jede geringe Fehler bei der Verbindung zu diesem DataAccessResourceFailureException oder ihrer Unterklassen eingewickelt werden.

+0

danke nochmal Artem! –