Re: MongoException

From: Need Help <tiffany888@xxxxxxxxx>
To: mongodb-user <mongodb-user@xxxxxxxxxxxxxxxx>
Date: Thu, 21 Apr 2016 20:49:47 -0700 (PDT)
Why ads?
We'd like to set cursorTimeout to 30 minutes.  

Could you please tell me how to put that information into the configuration 
file?  

We are using mongodb 3.0.4

I tried to put the following into the configuration file mongod.conf, but 
it does not recognize cursorTimeoutMillis:
     cursorTimeoutMillis = 30000

I can start mongodb with the following command:
      mongod --setParameter cursorTimeoutMillis=30000 -f mongod.conf

However, when I check for db.serverStatus(), I do not see the 
cursorTimeoutMillis being set:
db.serverStatus().metrics.cursor
{
        "timedOut" : NumberLong(0),
        "open" : {
                "noTimeout" : NumberLong(0),
                "pinned" : NumberLong(0),
                "total" : NumberLong(0)
        }
}

Thanks a lot for your help in advance!


On Wednesday, November 4, 2015 at 8:44:08 PM UTC-8, Stephen Steneker wrote:

On Wednesday, 4 November 2015 10:32:09 UTC+11, Need Help wrote:

We are getting the cursor not found exception once in a while on 
production system on the cloud. I have tried to reproduce the problem on 
our local server, but there seems to be no cursor timeout locally.

We used to set cursor to no timeout, but we ended up having many cursors 
open indefinitely. Is there any way to make sure the cursor is always 
cleaned up manually? 

Also, does mongod —setParameter cursorTimeoutMillis=xxx work? If we set 
the cursorTimeoutMillis to maybe 30 minutes or longer? 

Here is the log:

Caused by: com.mongodb.MongoException$CursorNotFound: Cursor 
122927474452794 not found on server xxx.xxx.xxx.xxx:27017
at 
com.mongodb.QueryResultIterator.throwOnQueryFailure(QueryResultIterator.java:250)
at com.mongodb.QueryResultIterator.init(QueryResultIterator.java:224)
at 
com.mongodb.QueryResultIterator.initFromQueryResponse(QueryResultIterator.java:184)
at com.mongodb.QueryResultIterator.getMore(QueryResultIterator.java:149)
at com.mongodb.QueryResultIterator.hasNext(QueryResultIterator.java:135)
at com.mongodb.DBCursor._hasNext(DBCursor.java:626)
at com.mongodb.DBCursor.hasNext(DBCursor.java:657)

Hi,

What are your specific versions of MongoDB driver and server?

Unless you are setting the “notimeout” (aka “immortal”) option for 
cursors, they will automatically be closed when the results are exhausted 
or after the idle timeout (see: Closure of Inactive Cursors 
<https://docs.mongodb.org/manual/core/cursors/#closure-of-inactive-cursors>). 
The default idle timeout is 10 minutes, but you can adjust this with the 
cursorTimeoutMillis parameter in MongoDB 2.6.9+ or MongoDB 3.0.2+ (see 
SERVER-8188 <https://jira.mongodb.org/browse/SERVER-8188>).

Regards,
Stephen



-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: https://docs.mongodb.org/manual/support/
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/a386f659-08e8-4261-addd-99713116454a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why ads?