diff --git a/selectdbwriter/src/main/java/com/alibaba/datax/plugin/writer/selectdbwriter/SelectdbCopyIntoObserver.java b/selectdbwriter/src/main/java/com/alibaba/datax/plugin/writer/selectdbwriter/SelectdbCopyIntoObserver.java index bbc52e9e..a05d5ca2 100644 --- a/selectdbwriter/src/main/java/com/alibaba/datax/plugin/writer/selectdbwriter/SelectdbCopyIntoObserver.java +++ b/selectdbwriter/src/main/java/com/alibaba/datax/plugin/writer/selectdbwriter/SelectdbCopyIntoObserver.java @@ -188,15 +188,18 @@ public class SelectdbCopyIntoObserver { if(success){ LOG.info("commit success cost {}ms, response is {}", System.currentTimeMillis() - start, loadResult); }else{ - throw new SelectdbWriterException("commit fail",true); + LOG.error("commit error with status {}, reason {}, response {}", statusCode, reasonPhrase, loadResult); + String copyErrMsg = String.format("commit error, status: %d, reason: %s, response: %s, copySQL: %s", + statusCode, reasonPhrase, loadResult, copySQL); + throw new SelectdbWriterException(copyErrMsg,true); } } } public boolean handleCommitResponse(String loadResult) throws IOException { - BaseResponse baseResponse = OBJECT_MAPPER.readValue(loadResult, new TypeReference>(){}); + BaseResponse baseResponse = OBJECT_MAPPER.readValue(loadResult, new TypeReference(){}); if(baseResponse.getCode() == SUCCESS){ - CopyIntoResp dataResp = baseResponse.getData(); + CopyIntoResp dataResp = OBJECT_MAPPER.convertValue(baseResponse.getData(), CopyIntoResp.class); if(FAIL.equals(dataResp.getDataCode())){ LOG.error("copy into execute failed, reason:{}", loadResult); return false;