zoukankan      html  css  js  c++  java
  • 【记】研究Sharding-JDBC遇到的一个异常(Caused by: io.shardingsphere.core.exception.ShardingException: Cannot get uniformed table structure for `t`. The different meta data of actual tables are as follows)

    一、异常信息

    Caused by: io.shardingsphere.core.exception.ShardingException: Cannot get uniformed table structure for `t`. The different meta data of actual tables are as follows

    异常信息提示找不到表的元数据信息,也就是找不到表,但是数据表实际已经创建。

    这个异常信息网上基本搜不到有效的信息和解决方案

    二、排查过程

    at io.shardingsphere.core.metadata.table.executor.TableMetaDataLoader.checkUniformed(TableMetaDataLoader.java:136)
    at io.shardingsphere.core.metadata.table.executor.TableMetaDataLoader.load(TableMetaDataLoader.java:68)
    at io.shardingsphere.core.metadata.table.executor.TableMetaDataLoader.load(TableMetaDataLoader.java:63)

    private TableMetaData load(final TableRule tableRule, final ShardingDataSourceNames shardingDataSourceNames) {
    List<TableMetaData> actualTableMetaDataList = loadActualTableMetaDataList(tableRule.getActualDataNodes(), shardingDataSourceNames);
    checkUniformed(tableRule.getLogicTable(), actualTableMetaDataList);
    return actualTableMetaDataList.iterator().next();
    }

    上述为异常栈信息,通过跟踪源码的方式发现最下面load方法中的 tableRule.getActualDataNodes()返回的是t0、t1两个数据,分表的配置也是:actual-data-nodes=ds_0.t$->{0..1}

    根据上述信息分析发现,配置的表是t0,t1,但是数据库实际只创建了t0表,所以抛出上述异常,再创建t1表即可解决问题

    三、总结

       使用第三方库遇到问题网上又找不到有效的解决方案时,可尝试通过跟踪源码的方式找到问题原因 

  • 相关阅读:
    python远程连接服务器并查看服务器上的文件
    python中xe6x80xa5xe8xafx8a如何转为中文
    idea+testng+maven环境搭建
    Django restfulframework系列
    django-基于函数的视图与基于类的视图
    yaml结合数据驱动编写测试用例
    pycharm社区版找不到工具栏找不到Database的解决办法
    Content-Type 对照表
    ffmpeg C# 切第一秒的有图片
    Angular HttpClient POST 服务器(springboot)获取不到参数问题
  • 原文地址:https://www.cnblogs.com/gossip/p/9522381.html
Copyright © 2011-2022 走看看