From c77ac53fb9412d0bc5524fbd7d31203c8cc63dfd Mon Sep 17 00:00:00 2001 From: GroundWu <1175416256@qq.com> Date: Wed, 27 Nov 2024 11:26:57 +0800 Subject: [PATCH] fix -5150 error and try to refresh route after relogin --- src/main/java/com/alipay/oceanbase/rpc/table/ObTable.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/alipay/oceanbase/rpc/table/ObTable.java b/src/main/java/com/alipay/oceanbase/rpc/table/ObTable.java index 551782dd..dec3c963 100644 --- a/src/main/java/com/alipay/oceanbase/rpc/table/ObTable.java +++ b/src/main/java/com/alipay/oceanbase/rpc/table/ObTable.java @@ -30,6 +30,7 @@ import com.alipay.oceanbase.rpc.protocol.payload.impl.execute.*; import com.alipay.oceanbase.rpc.table.api.TableBatchOps; import com.alipay.oceanbase.rpc.table.api.TableQuery; +import com.alipay.oceanbase.rpc.util.TraceUtil; import com.alipay.remoting.ConnectionEventHandler; import com.alipay.remoting.config.switches.GlobalSwitch; import com.alipay.remoting.connection.ConnectionFactory; @@ -417,6 +418,10 @@ private ObPayload executeWithReconnect(ObTableConnection connection, final ObPay } catch (ObTableException ex) { if (ex instanceof ObTableTenantNotInServerException && retryTimes < 2) { needReconnect = true; + } else if (ex instanceof ObTableTenantNotInServerException) { + String errMessage = TraceUtil.formatTraceMessage(connection, request, + "meet ObTableTenantNotInServerException and has relogined, need to refresh route"); + throw new ObTableNeedFetchAllException(errMessage, ex.getErrorCode()); } else { throw ex; }