fix:修复seata2.4版本下达梦数据库回滚异常问题,增加调试日志

This commit is contained in:
hewencai
2025-12-29 09:53:00 +08:00
parent 1d4380adc1
commit 8b469710ce

View File

@@ -26,6 +26,8 @@ import org.apache.seata.rm.datasource.undo.AbstractUndoLogManager;
import org.apache.seata.rm.datasource.undo.parser.FastjsonUndoLogParser; import org.apache.seata.rm.datasource.undo.parser.FastjsonUndoLogParser;
import org.apache.seata.rm.datasource.undo.parser.JacksonUndoLogParser; import org.apache.seata.rm.datasource.undo.parser.JacksonUndoLogParser;
import org.apache.seata.sqlparser.struct.TableMeta; import org.apache.seata.sqlparser.struct.TableMeta;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -66,6 +68,18 @@ import java.util.stream.Collectors;
*/ */
public class DataCompareUtils { public class DataCompareUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(DataCompareUtils.class);
/**
* 标识补丁类是否已加载
*/
private static final boolean PATCHED;
static {
PATCHED = true;
LOGGER.info("[zt-spring-boot-starter-seata-dm] DataCompareUtils 补丁类已加载,用于解决达梦数据库 DmdbTimestamp 时区问题");
}
private DataCompareUtils() {} private DataCompareUtils() {}
/** /**
@@ -102,6 +116,10 @@ public class DataCompareUtils {
Instant i0 = toInstant(v0); Instant i0 = toInstant(v0);
Instant i1 = toInstant(v1); Instant i1 = toInstant(v1);
boolean equals = Objects.equals(i0, i1); boolean equals = Objects.equals(i0, i1);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("[zt-seata-dm-patch] DmdbTimestamp 比较: field={}, i0={}, i1={}, equals={}",
f0.getName(), i0, i1, equals);
}
return equals return equals
? Result.ok() ? Result.ok()
: Result.buildWithParams( : Result.buildWithParams(