Skip to content

Commit f56010d

Browse files
committed
opt for errorMsg when execute batch in the scene of table not exist
1 parent a53ba60 commit f56010d

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientBatchOpsImpl.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -514,16 +514,18 @@ private void executeWithRetries(ObTableOperationResult[] results, Map.Entry<Long
514514

515515
Map<Long, ObPair<ObTableParam, List<ObPair<Integer, ObTableOperation>>>> currentPartitions = new HashMap<>();
516516
currentPartitions.put(entry.getKey(), entry.getValue());
517-
518-
while (retryCount < maxRetries && !success) {
517+
int errCode = ResultCodes.OB_SUCCESS.errorCode;
518+
String errMsg = null;
519+
while (retryCount <= maxRetries && !success) {
519520
boolean allPartitionsSuccess = true;
520-
521521
for (Map.Entry<Long, ObPair<ObTableParam, List<ObPair<Integer, ObTableOperation>>>> currentEntry : currentPartitions.entrySet()) {
522522
try {
523523
partitionExecute(results, currentEntry);
524524
} catch (Exception e) {
525525
if (shouldRetry(e)) {
526526
retryCount++;
527+
errCode = ((ObTableNeedFetchAllException)e).getErrorCode();
528+
errMsg = e.getMessage();
527529
List<ObTableOperation> failedOperations = extractOperations(currentEntry.getValue().getRight());
528530
currentPartitions = prepareOperations(failedOperations);
529531
allPartitionsSuccess = false;
@@ -540,7 +542,9 @@ private void executeWithRetries(ObTableOperationResult[] results, Map.Entry<Long
540542
}
541543

542544
if (!success) {
543-
throw new ObTableUnexpectedException("Failed to execute operation after retrying " + maxRetries + " times.");
545+
errMsg = "Failed to execute operation after retrying " + maxRetries + " times. Last error Msg:" +
546+
"[errCode="+ errCode +"] " + errMsg;
547+
throw new ObTableUnexpectedException(errMsg);
544548
}
545549
}
546550

src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientLSBatchOpsImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,8 @@ private void executeWithRetries(
630630

631631
Map<Long, Map<Long, ObPair<ObTableParam, List<ObPair<Integer, ObTableSingleOp>>>>> currentPartitions = new HashMap<>();
632632
currentPartitions.put(entry.getKey(), entry.getValue());
633-
633+
int errCode = ResultCodes.OB_SUCCESS.errorCode;
634+
String errMsg = null;
634635
while (retryCount <= maxRetries && !success) {
635636
boolean allPartitionsSuccess = true;
636637

@@ -640,6 +641,8 @@ private void executeWithRetries(
640641
} catch (Exception e) {
641642
if (shouldRetry(e)) {
642643
retryCount++;
644+
errCode = ((ObTableNeedFetchAllException)e).getErrorCode();
645+
errMsg = e.getMessage();
643646
List<ObTableSingleOp> failedOperations = extractOperations(currentEntry.getValue());
644647
currentPartitions = prepareOperations(failedOperations);
645648
allPartitionsSuccess = false;
@@ -656,6 +659,8 @@ private void executeWithRetries(
656659
}
657660

658661
if (!success) {
662+
errMsg = "Failed to execute operation after retrying " + maxRetries + " times. Last error Msg:" +
663+
"[errCode="+ errCode +"] " + errMsg;
659664
throw new ObTableUnexpectedException("Failed to execute operation after retrying " + maxRetries + " times.");
660665
}
661666
}

0 commit comments

Comments
 (0)