问题描述
timestamp类型字段DataCompareUtils.converType方法发现old value一直是.0 ;new value 一直是.xxx 导致Field not equals
通过debug级别日志看到 CREATE_TIME 精度不一样
上述问题导致回滚失败一直重试一直失败
如何复制回顾
1、A 服务调B服务;B使用oracle数据源;
2、B服务正常提交事务;A服务自身异常;
3、即可看到B服务回滚失败;
4、主要关心timestamp类型字段
create table ACT_HI_ACTINST ( ID_ NVARCHAR2(64) not null, PROC_DEF_ID_ NVARCHAR2(64) not null, PROC_INST_ID_ NVARCHAR2(64) not null, EXECUTION_ID_ NVARCHAR2(64) not null, ACT_ID_ NVARCHAR2(255) not null, TASK_ID_ NVARCHAR2(64), CALL_PROC_INST_ID_ NVARCHAR2(64), ACT_NAME_ NVARCHAR2(255), ACT_TYPE_ NVARCHAR2(255) not null, ASSIGNEE_ NVARCHAR2(255), START_TIME_ TIMESTAMP(6) not null, END_TIME_ TIMESTAMP(6), DURATION_ NUMBER(19,0), DELETE_REASON_ NVARCHAR2(2000), TENANT_ID_ NVARCHAR2(255) default '', primary key (ID_) );
环境信息
JDK version : 1.8 Seata version: 1.5.1 OS :win10 Others: 无 序列化方式: fastjson
原提问者GitHub用户sennnnnnn
暂时先使用jackson进行序列化 https://github.com/seata/seata/tree/develop/seata-plugin 需要拉取此代码,或者复制这块代码使用spi的方式生效
原回答者GitHub用户a364176773
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。