首页 > 解决方案 > 为什么 WSO2AM 一遍又一遍地对 mb_metadata 表执行计数查询?

问题描述

我们为 WSO2AM 2.6.0 启用了高级限制。启用此功能并正确创建执行计划后,我们注意到每小时针对 MB_METADATA 表执行超过 35M 的选择计数查询。

此外,MB_METADATA 和 MB_CONTENT 表不断增长,行数永远不会下降。

我已禁用所有统计信息和跟踪。我们有 4 台 WSO 服务器,每台服务器与网关、密钥管理器和流量管理器在同一个盒子上独立运行。数据库是甲骨文。

我们看到这个查询运行 3500 万次/小时:

SELECT COUNT(MESSAGE_ID) AS count FROM MB_METADATA WHERE QUEUE_ID=:1 AND MESSAGE_ID BETWEEN :2 AND :3 AND DLC_QUEUE_ID=-1

我希望表大小是可管理的,并且此查询不会以如此高的速率运行。

关于可能发生的事情有什么建议吗?可能是我需要禁用的配置?

标签: wso2wso2-am

解决方案


共享 MB 数据库不正确。每个流量管理器节点都应该有自己的 MB 数据库,它可以是默认的 H2 数据库。

引用自文档:

不要在 Active-Active 设置或流量管理器 HA 场景中的节点之间共享 WSO2_MB_STORE_DB 数据库,因为每个节点都应该有自己的本地 WSO2_MB_STORE_DB 数据库来充当单独的流量管理器。

后者提到的 DB 可以是 H2 DB 或任何 RDBMS,例如 MySQL。

如果数据库损坏,那么您需要用产品分发中可用的新数据库替换数据库。

参考:https ://docs.wso2.com/display/AM260/Installing+and+Configuring+the+Databases


推荐阅读