解決com.mongodb.MongoException$CursorNotFound: cursor 0 not found on server

來源:互聯網
上載者:User

標籤:

背景

    經常需要執行指令碼調用Java程式讀取mongodb中資料,本來是轉為後台進程、偶爾看看日誌的簡單任務。今天發現程式拋出異常“com.mongodb.MongoException$CursorNotFound: cursor 0 not found on server”。一開始沒在意,重新執行也可以繼續跑,但是過一段時間又拋出同樣錯誤,看來要戰鬥了。

分析

    在mogondb.org官網,我找到了同樣的問題,這是一個2013年就發現並解決的問題,官方回應這一BUG,並且已經在版本(2.11.0 release)中解決了。異常原因是遊標逾時

      例外:或許在涉及oplog的操作中,還是會有問題,請參考:https://jira.mongodb.org/browse/JAVA-771

解決
  •  方案1:更新mongodb類庫至2.11.0以上。

  •  方案2:如果我們不能更新mogondb的類庫的話,也可以通過設定逾時參數來解決,如下:

    cursor.addOption(com.mongodb.Bytes.QUERYOPTION_NOTIMEOUT);
參考

    cursor not found on server:https://jira.mongodb.org/browse/JAVA-907

    Repeated CursorNotFound exceptions on long-running process following oplog:https://jira.mongodb.org/browse/JAVA-771

解決com.mongodb.MongoException$CursorNotFound: cursor 0 not found on server

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.