开发者社区> 问答> 正文

StatFilter的connection_rollback为什么统计2次?

T63.png

原提问者GitHub用户miaogr86

展开
收起
山海行 2023-07-05 20:53:09 51 0
3 条回答
写回答
取消 提交回答
  • StatFilter 的 connection_rollback 统计项出现两次的情况可能是由以下原因导致的:

    1. 异常回滚和手动回滚:在某些情况下,当事务因为异常而被回滚时,Druid 数据源会将其计入 connection_rollback 统计项中。但如果在事务正常结束后,你手动回滚了事务,Druid 数据源也会将其计入 connection_rollback 统计项中,导致重复统计。

    2. 多个过滤器:如果在数据源配置中使用了多个 StatFilter 过滤器,就会导致 connection_rollback 统计项出现多次。每个 StatFilter 都会进行一次统计,导致相同的统计项被统计多次。

    要解决这个问题,可以尝试以下方法:

    - 检查并处理异常回滚和手动回滚的情况,确保只有一次回滚被统计到 connection_rollback 中。 - 如果在数据源配置中使用了多个 StatFilter 过滤器,考虑只使用一个 StatFilter 过滤器,以避免重复统计。

    2023-07-30 14:35:10
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在 Druid Spring Boot Starter 中,StatFilter 是用于收集数据源的统计信息的一个过滤器。其中,connection_rollback 是一个统计项,表示当前数据源的回滚事务数。

    关于 connection_rollback 统计项出现两次的问题,可能是由于以下两个原因导致的:

    异常回滚和手动回滚
    在某些情况下,数据源的回滚事务可能会被统计两次。例如,当一个事务因为异常而被回滚时,Druid 数据源会将其视为一次回滚事务,并将其计入 connection_rollback 统计项中。但是,如果在事务正常结束后,你手动回滚了事务,Druid 数据源也会将其计入 connection_rollback 统计项中,这样就会出现重复统计的情况。

    多个过滤器
    如果你在数据源配置中同时使用了多个 StatFilter 过滤器,也可能导致 connection_rollback 统计项出现两次。这是因为每个 StatFilter 都会进行一次统计,导致相同的统计项被统计了多次。

    如果你遇到了 connection_rollback 统计项出现两次的问题,可以尝试检查以上两个原因,并进行相应的调整。例如,你可以在配置文件中只使用一个 StatFilter 过滤器,或者在代码中避免手动回滚事务。

    2023-07-30 13:13:21
    赞同 展开评论 打赏
  • 已修复,升级到最新版本试试。

    原回答者GitHub用户lihengming

    2023-07-06 11:47:35
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载