开发者社区 > 云原生 > 正文

oracle数据库 字段类型timestamp 回滚异常

问题描述

timestamp类型字段DataCompareUtils.converType方法发现old value一直是.0 ;new value 一直是.xxx 导致Field not equals

提问15.png

通过debug级别日志看到 CREATE_TIME 精度不一样

提问16.png

上述问题导致回滚失败一直重试一直失败

如何复制回顾

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

展开
收起
学习娃 2023-06-14 17:00:31 99 0
1 条回答
写回答
取消 提交回答
  • 暂时先使用jackson进行序列化 https://github.com/seata/seata/tree/develop/seata-plugin 需要拉取此代码,或者复制这块代码使用spi的方式生效

    原回答者GitHub用户a364176773

    2023-06-14 17:29:22
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载

相关镜像