异常"Exceed dataset count limit per thread:5000"答疑原创
4人赞赏了该文章
627次浏览
编辑于2023年12月14日 20:04:05
异常产生的原因:Algo对当前线程未关闭的dataset数量做了限制。默认限制当前线程未关闭的dataset数量为5000。做此限制主要是为了防止程序过度使用资源,不能及时释放,导致程序卡、慢、OOM、甚至宕机!
解决方式:
1. 临时解决方式:调整参数algo.limit.threadMaxDatasetCount,将值调大,该参数默认值为5000。
2. 要彻底解决需要优化业务逻辑。抛此异常说明在当前线程中未关闭的dataset数量过多。一般可能的原因:
a.大量的Dataset没有迭代完(迭代完dataset会自动关闭),又没有手动去关闭;
b.在循环或递归调用中生成大量dataset;
c.检查业务其他可能产生大量DataSet的逻辑。
推荐阅读