cat-监控不到查询sql

416 阅读1分钟

背景

cat,监控不到查询sql,但是可以监控到非查询sql。

原因

加了mybatis分页拦截器就有问题,不加分页拦截器就正常。

代码

@Bean(name = "solidMybatisSqlSessionFactory")
    @Primary
    public SqlSessionFactory sqlSessionFactory(@Qualifier("solidDruidDataSource") DruidSecretBasicDataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("META-INF/mapper/*Mapper.xml"));

        // 分页插件
        Interceptor pageHelper = new PageInterceptor();
        Properties properties = new Properties();
        properties.setProperty("helperDialect","oracle");
        properties.setProperty("offsetAsPageNum","true");
        properties.setProperty("rowBoundsWithCount","true");
        properties.setProperty("pageSizeZero","true");
        properties.setProperty("reasonable","true");
        properties.setProperty("params","pageNum=start;pageSize=limit;count=countSql");
        properties.setProperty("supportMethodsArguments","true");
        properties.setProperty("returnPageInfo","check");
        pageHelper.setProperties(properties);

        //日志监控插件
//        bean.setPlugins(new Interceptor[]{new CatMybatisPlugin(),pageHelper}); //加了分页拦截器就有问题
        bean.setPlugins(new Interceptor[]{new CatMybatisPlugin()}); //不加就正常
        return bean.getObject();
    }

解决方法

这个问题本质是因为cat有bug,新版本已经修复(github.com/dianping/ca…

最新代码 github.com/codeimport/…


代码区别

1.旧代码

2.新代码 红框里是新增的。只要新增红框里的代码,就可以解决问题。

参考

xtong.tech/2018/08/01/…