バッチ例外の処理

HBase API には、複数のオペレーションを一括して送信する方法として、次の 2 つが用意されています。

Java 用 Cloud Bigtable HBase クライアントでは、これらのメソッドにより RetriesExhaustedWithDetailsException がスローされる場合があります。この例外は、なんらかの理由(たとえば、接続の失敗など)で 1 つ以上のバッチ オペレーションが失敗するとスローされます。この例外には、失敗したリクエストのリスト、および各リクエストの失敗の原因となった例外に関する詳細な情報が格納されています。

RetriesExhaustedWithDetailsException だけでは、リクエストが失敗した理由はわかりません。RetriesExhaustedWithDetailsException#getCauses() を呼び出して、失敗した各リクエストについて詳細な例外情報を取得する必要があります。その後、詳細な各例外情報をログに書き出すこともできます。このログは失敗の診断に役立ちます。

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