Menangani pengecualian batch
HBase API menyediakan dua cara untuk mengirim beberapa operasi sebagai batch:
Table#batch(List, Object[])
menggabungkan beberapa operasi get dan mutasi menjadi satu batch.BufferedMutator#mutate(List<? extends Mutation> mutations)
menggabungkan beberapa mutasi ke dalam satu batch atau serangkaian batch.
Dengan klien HBase Cloud Bigtable untuk Java, kedua metode ini dapat menampilkan
RetriesExhaustedWithDetailsException
. Pengecualian ini ditampilkan
saat satu atau beberapa operasi batch gagal karena alasan apa pun (misalnya,
karena koneksi gagal). File ini berisi daftar permintaan yang gagal, beserta detail tentang pengecualian yang menyebabkan setiap permintaan gagal.
RetriesExhaustedWithDetailsException
itu sendiri tidak memberi tahu Anda alasan
permintaan gagal. Anda harus memanggil
RetriesExhaustedWithDetailsException#getCauses()
untuk mengambil pengecualian mendetail untuk setiap permintaan yang gagal. Kemudian, Anda dapat mencatat informasi tentang setiap pengecualian mendetail, yang akan membantu Anda mendiagnosis kegagalan:
try {
mutator.mutate(mutationList);
} catch (RetriesExhaustedWithDetailsException e) {
for (Throwable cause : e.getCauses()) {
cause.printStackTrace();
}
throw e;
}
Pengecualian juga dapat ditampilkan saat Anda memanggil
flush
atau close
.
Penanganan error yang sama berlaku.