【问题标题】:What does "response too long" means in MongoDB Java driver?MongoDB Java 驱动程序中的“响应时间过长”是什么意思?
【发布时间】:2013-09-12 21:01:35
【问题描述】:

有时我会从 MongoDB Java 驱动程序 2.10.1 中得到这个异常:

java.lang.IllegalArgumentException: response too long: 1912733750
  at com.mongodb.Response.<init>(Response.java:47)
  at com.mongodb.DBPort.go(DBPort.java:124)
  at com.mongodb.DBPort.call(DBPort.java:74)
  at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:286)
  at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:257)
  at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:310)
  at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:295)
  at com.mongodb.DBCursor._check(DBCursor.java:368)
  at com.mongodb.DBCursor._hasNext(DBCursor.java:459)
  at com.mongodb.DBCursor.hasNext(DBCursor.java:484)

显然,我的回复并没有那么长。实际上它很小,集合中只有 1000 个项目,每个项目 100-500 字节。为什么会发生这种情况?

【问题讨论】:

  • 将 MongoDB java 驱动程序升级到 2.11.2 版本 NOT 解决问题
  • 你有多个线程使用同一个光标吗?
  • 如果我没记错的话,该错误表明您的响应大小接近 2GB。您介意向我们展示实际的查询吗?我认为这是您正在运行的聚合?

标签: java mongodb


【解决方案1】:

正如错误描述所说,它是由服务器响应请求的时间过长引起的。这可能是由服务器中的防火墙设置引起的。尝试检查服务器是否可以通过您用于 MongoDB 的端口写出响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 2012-02-06
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多