diff --git a/src/main/java/com/alipay/oceanbase/hbase/OHTable.java b/src/main/java/com/alipay/oceanbase/hbase/OHTable.java index 31b83897..676831ba 100644 --- a/src/main/java/com/alipay/oceanbase/hbase/OHTable.java +++ b/src/main/java/com/alipay/oceanbase/hbase/OHTable.java @@ -1464,6 +1464,7 @@ public void close() throws IOException { if (cleanupPoolOnClose) { executePool.shutdown(); } + ObTableClientManager.clear(); } @Override diff --git a/src/main/java/com/alipay/oceanbase/hbase/util/ObTableClientManager.java b/src/main/java/com/alipay/oceanbase/hbase/util/ObTableClientManager.java index 5db940aa..34d3d3b3 100644 --- a/src/main/java/com/alipay/oceanbase/hbase/util/ObTableClientManager.java +++ b/src/main/java/com/alipay/oceanbase/hbase/util/ObTableClientManager.java @@ -126,6 +126,18 @@ public static ObTableClient getOrCreateObTableClient(ObTableClientKey obTableCli return OB_TABLE_CLIENT_INSTANCE.get(obTableClientKey); } + public static void clear() throws IOException { + try { + for (Map.Entry pair : OB_TABLE_CLIENT_INSTANCE.entrySet()) { + pair.getValue().close(); + } + } + catch (Exception e) { + throw new IOException("fail to close tableClient" , e); + } + OB_TABLE_CLIENT_INSTANCE.clear(); + } + public static class ObTableClientKey { private String paramUrl; private String fullUserName;