4
我正在使用MongoDb,並且在從數據庫讀取記錄時遇到問題。 我能夠讓他們在光標,但是當我試圖讓使用 cursor.hasNext(光標記錄),它給了我以下異常:Mongo + Java + SocketTimeOut
com.mongodb.MongoInternalException: couldn't get next element
at com.mongodb.DBCursor.hasNext(DBCursor.java:459)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:146)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at org.bson.io.Bits.readFully(Bits.java:35)
at org.bson.io.Bits.readFully(Bits.java:28)
at com.mongodb.Response.<init>(Response.java:35)
at com.mongodb.DBPort.go(DBPort.java:101)
at com.mongodb.DBPort.go(DBPort.java:66)
at com.mongodb.DBPort.call(DBPort.java:56)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:211)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:220)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:220)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:266)
at com.mongodb.DBCursor._check(DBCursor.java:309)
at com.mongodb.DBCursor._hasNext(DBCursor.java:431)
at com.mongodb.DBCursor.hasNext(DBCursor.java:456)
也許我面臨這個問題,因爲我的數據是不斷增加的,所以我得到更多的遊標記錄。我正在訪問的數據庫也在遠程機器上。
請在這方面需要幫助。
謝謝!
你能找回任何記錄嗎?你有防火牆規則可能導致這個問題嗎?你在超時之前計時了多久? – 2011-03-29 12:06:59
你可以粘貼你使用的代碼來產生這個錯誤嗎?它與標準教程相比如何?在這個錯誤發生之前,你是否收到了一些文件,或者在你收到第一個文件之前發生了這些文件? – 2011-03-30 21:29:52
你能確保你和你的服務器之間沒有防火牆或類似的東西嗎?這看起來像是網絡端口由於網絡過度成員超時而關閉的情況。 – 2011-03-30 23:52:26