Batchausnahmen verarbeiten

Die HBase API bietet zwei Möglichkeiten, mehrere Vorgänge als Batch zu schicken:

Mit dem Cloud Bigtable HBase-Client für Java können beide Methoden eine RetriesExhaustedWithDetailsException auslösen. Diese Ausnahme wird ausgelöst, wenn mindestens ein Batch-Vorgang aus beliebigem Grund nicht möglich ist (beispielsweise bei fehlgeschlagener Verbindung). Sie enthält eine Liste fehlgeschlagener Anfragen mit Details über die Ausnahme, die das Scheitern des Befehls ausgelöst hat.

Eine Ausnahme der Art RetriesExhaustedWithDetailsException allein sagt nichts darüber aus, warum eine Anfrage fehlgeschlagen ist. Sie müssen RetriesExhaustedWithDetailsException#getCauses() aufrufen, um die detaillierten Ausnahmen für jede fehlgeschlagene Anfrage abzurufen. Für die Fehlerdiagnose ist es hilfreich, wenn Sie die Informationen über die einzelnen Ausnahmen protokollieren:

try {
  mutator.mutate(mutationList);
} catch (RetriesExhaustedWithDetailsException e) {
  for (Throwable cause : e.getCauses()) {
    cause.printStackTrace();
  }
  throw e;
}

Eine Ausnahme kann auch auftreten, wenn Sie flush oder close aufrufen. Es gilt dieselbe Fehlerbehandlung.