seata1.4.0 AT模式集成人大金仓(kingbase8)支持

目录

一、服务端的修改

(1)seata-core-1.4.0.jar\META-INF\services --> io.seata.core.store.db.sql.lock.LockStoreSql、io.seata.core.store.db.sql.log.LogStoreSqls  加上kingbase8的引入

(2)seata-core-1.4.0.jar\io\seata\core\store\db\sql\lock -- 》增加KingbaseLockStoreSql.class,模仿OracleLockStoreSql.class

(3)seata-core-1.4.0.jar\io\seata\core\store\db\sql\log-- 》增加KingbaseLogStoreSqls.class,模仿OracleLogStoreSqls.class

(4)seata-core-1.4.0.jar\io\seata\core\constants --》 DBType.class 增加kingbase8支持

二、客户端的修改

(1)seata-core-1.4.0.jar\META-INF\services --》按文档中的oracle格式,增加kingbase支持

(2)seata-core-1.4.0.jar\io\seata\core\store\db\sql\lock -- 》增加KingbaseLockStoreSql.class,模仿OracleLockStoreSql.class

(3)seata-core-1.4.0.jar\io\seata\core\store\db\sql\log-- 》增加KingbaseLogStoreSqls.class,模仿OracleLogStoreSqls.class

(4)io.seata.core.constants -》  DBType.class 增加kingbase8支持

(5)io.seata.rm.datasource.exec.kingbase--》增加KingbaseInsertExecutor.class,模仿OracleInsertExecutor.class

(6)io.seata.rm.datasource.sql.struct.cache--》 增加KingbaseTableMetaCache,模仿MysqlTableMetaCache.class,并修改增加截图中的内容

(7)io.seata.rm.datasource.undo-->增加kingbase包以及内部的class,模仿oracle

(8)io.seata.rm.datasource.undo-->修改AbstractUndoExecutor.class,不清楚为啥kingbase 的JdbcUtils.getDbType(jdbcUrl)获取报空指针异常

(9)io.seata.sqlparser.druid-->增加kingbase包以及内部的class,模仿oracle

三、上传修改后的jar到nexus


目前seata1.4.0只支持 MySQL、 Oracle 、PostgreSQL和 TiDB的AT模式,无法满足国产数据库的要求。找了很多的资料,都没有现成可使用的版本,只能模仿oracle的支持进行修改,修改包含服务端和客户端。以下是修改的步骤,如有错误,敬请指正。

springcloud集成seata请参考:https://blog.csdn.net/u014704612/article/details/110194156

一、服务端的修改

seata-core-1.4.0.jar

(1)seata-core-1.4.0.jar\META-INF\services --> io.seata.core.store.db.sql.lock.LockStoreSql、io.seata.core.store.db.sql.log.LogStoreSqls  加上kingbase8的引入

(2)seata-core-1.4.0.jar\io\seata\core\store\db\sql\lock -- 》增加KingbaseLockStoreSql.class,模仿OracleLockStoreSql.class

(3)seata-core-1.4.0.jar\io\seata\core\store\db\sql\log-- 》增加KingbaseLogStoreSqls.class,模仿OracleLogStoreSqls.class

(4)seata-core-1.4.0.jar\io\seata\core\constants --》 DBType.class 增加kingbase8支持

二、客户端的修改

seata-all.1.4.0.jar

(1)seata-core-1.4.0.jar\META-INF\services --》按文档中的oracle格式,增加kingbase支持

(2)seata-core-1.4.0.jar\io\seata\core\store\db\sql\lock -- 》增加KingbaseLockStoreSql.class,模仿OracleLockStoreSql.class

(3)seata-core-1.4.0.jar\io\seata\core\store\db\sql\log-- 》增加KingbaseLogStoreSqls.class,模仿OracleLogStoreSqls.class

(4)io.seata.core.constants -》  DBType.class 增加kingbase8支持

(5)io.seata.rm.datasource.exec.kingbase--》增加KingbaseInsertExecutor.class,模仿OracleInsertExecutor.class

(6)io.seata.rm.datasource.sql.struct.cache--》 增加KingbaseTableMetaCache,模仿MysqlTableMetaCache.class,并修改增加截图中的内容

(7)io.seata.rm.datasource.undo-->增加kingbase包以及内部的class,模仿oracle

(8)io.seata.rm.datasource.undo-->修改AbstractUndoExecutor.class,不清楚为啥kingbase 的JdbcUtils.getDbType(jdbcUrl)获取报空指针异常

(9)io.seata.sqlparser.druid-->增加kingbase包以及内部的class,模仿oracle

三、上传修改后的jar到nexus

修改后的jar,版本设置为1.4.0.0

上传jar

mvn deploy:deploy-file -DgroupId=io.seata -DartifactId=seata-all -Dversion=1.4.0.0 -Dpackaging=jar -Dfile=F:\1.4.0.0\seata-all-1.4.0.0.jar -Durl=http://ip:port/repository/sfs_repositories/ -DrepositoryId=sfs

上传pom,使用seata-all.1.4.0原来的pom,覆盖1.4.0.0新生成的

mvn deploy:deploy-file -Dfile=F:\1.4.0.0\seata-all-1.4.0.0.pom -DgroupId=io.seata -DartifactId=seata-all -Dversion=1.4.0.0 -Dpackaging=pom -Durl=http://ip:port/repository/sfs_repositories/ -DrepositoryId=sfs

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值