Menangani pengecualian batch
HBase API menyediakan dua cara untuk mengirim beberapa operasi sebagai batch:
Table#batch(List, Object[])
menggabungkan beberapa pengambilan dan mutasi menjadi satu batch.BufferedMutator#mutate(List<? extends Mutation> mutations)
menggabungkan beberapa mutasi menjadi batch atau serangkaian batch.
Dengan klien HBase Cloud Bigtable untuk Java, kedua metode ini dapat menampilkan RetriesExhaustedWithDetailsException
. Pengecualian ini ditampilkan jika 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.
Dengan sendirinya, RetriesExhaustedWithDetailsException
tidak akan memberi tahu Anda alasan
permintaan gagal. Anda harus memanggil
RetriesExhaustedWithDetailsException#getCauses()
untuk mengambil
pengecualian mendetail untuk setiap permintaan yang gagal. Selanjutnya, Anda dapat mencatat informasi tentang setiap pengecualian mendetail ke dalam log, yang akan membantu mendiagnosis kegagalan:
try {
mutator.mutate(mutationList);
} catch (RetriesExhaustedWithDetailsException e) {
for (Throwable cause : e.getCauses()) {
cause.printStackTrace();
}
throw e;
}