MongoDb 游标已关闭 db 宕机后不恢复

问题描述

在我们的应用程序中有数百万个关闭游标的异常。 光标已关闭;嵌套异常是 com.mongodb.MongoException: Cursor has been closed

它发生在数据库服务器暂时停机并且此游标永远无法恢复然后向前时。

enter image description here

Mongo java 驱动版本为 3.8.2

Spring mongo 版本是 2.0.6.RELEASE。

我们已经注册 MessageListener 在我们的应用程序中。

以下是我们拥有的 mongo 客户端属性

enter image description here

enter image description here

不确定上述问题的原因是什么。同时不确定是否有一些属性需要调整以防止这种情况发生。

下面是堆栈跟踪:


    MongoException.java in fromThrowableNonNull at line 79
    ChangeStreamBatchCursor.java in resumeableOperation at line 136
    ChangeStreamBatchCursor.java in tryNext at line 76
    MongoBatchCursorAdapter.java in tryNext at line 74
    CursorReadingTask.java in getNext at line 232
    CursorReadingTask.java in run at line 79
    Thread.java in run at line 748


    QueryBatchCursor.java in tryNext at line 174
    ChangeStreamBatchCursor.java in apply at line 79
    ChangeStreamBatchCursor.java in apply at line 76
    ChangeStreamBatchCursor.java in resumeableOperation at line 133
    ChangeStreamBatchCursor.java in tryNext at line 76
    MongoBatchCursorAdapter.java in tryNext at line 74
    CursorReadingTask.java in getNext at line 232
    CursorReadingTask.java in run at line 79
    Thread.java in run at line 748

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...