异常"Exceed dataset count limit per thread:5000"答疑原创
金蝶云社区-hb_guo
hb_guo
4人赞赏了该文章 627次浏览 未经作者许可,禁止转载编辑于2023年12月14日 20:04:05

上传图片

  1. 异常产生的原因:Algo对当前线程未关闭的dataset数量做了限制。默认限制当前线程未关闭的dataset数量为5000。做此限制主要是为了防止程序过度使用资源,不能及时释放,导致程序卡、慢、OOM、甚至宕机!


  2. 解决方式:

    1.  临时解决方式:调整参数algo.limit.threadMaxDatasetCount,将值调大,该参数默认值为5000。

    2.  要彻底解决需要优化业务逻辑。抛此异常说明在当前线程中未关闭的dataset数量过多。一般可能的原因:

         a.大量的Dataset没有迭代完(迭代完dataset会自动关闭),又没有手动去关闭;       

         b.在循环或递归调用中生成大量dataset;

         c.检查业务其他可能产生大量DataSet的逻辑。


赞 4