gpt4 book ai didi

对象框 DbMaxReadersExceededException

转载 作者:行者123 更新时间:2023-12-05 04:47:14 24 4
gpt4 key购买 nike

对象框版本 2.7.1,MaxNumReaders 500,@Entity 计数超过 50,一些实体有超过 10 万行。发布两周后,我们开始在 Sentry 中收到错误:无法开始读取事务(已达到读取事务的最大值)如何使用调试器在早期诊断问题?

最佳答案

当您遇到 DbMaxReadersExceededException 时,您通常可以通过检查以下选项来解决问题:

  1. 因为您已经增加了 max readers 值,所以我假设您使用了多个线程。我要做的第一件事是验证您的线程逻辑。我们已经看到应用程序无限制地生成线程并因此破坏读者的情况。每个线程在访问 ObjectBox DB 时都需要一个读取器。因此,获得 DbMaxReadersExceededException 可能是您的线程代码出现问题的征兆。

  2. 如果您有很多短期线程,您可能会看到类似“W/Box:跳过只读游标(非创建者线程)的低级别关闭”的日志"或 "提示:使用 closeThreadResources() 来避免完成回收交易"。后一个提示正是您在线程退出之前应该做的事情。如果你只使用了一个或两个Box,你可以调用box上的方法:box.closeThreadResources(),否则BoxStore也提供了一个同名的方法对所有 Box 执行此操作。

  3. 目前还有 an open issue与未绑定(bind)线程池有关。如果遇到这种情况,当前的解决方法是使用具有上限的线程池。

关于对象框 DbMaxReadersExceededException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68557014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com