2014-07-22 51 views
2

MongoDB在一個包含三個成員的副本集中。有時,一個或兩個MongoDB的情況下重新啓動時,Java應用程序失去連接,並顯示以下錯誤,然後我必須手動重新啓動Java應用程序,以重新連接MongoDB中的副本集:爲什麼Java應用程序在MongoDB重新啓動後失去連接?

org.springframework.dao.DataAccessResourceFailureException: 
Unable to connect to any server that matches 
{serverSelectors=[ReadPreferenceServerSelector{readPreference=secondaryPreferred}, 
LatencyMinimizingServerSelector{acceptableLatencyDifference=15 ms}]}; 
nested exception is com.mongodb.MongoServerSelectionException: 
Unable to connect to any server that matches 
{serverSelectors=[ReadPreferenceServerSelector{readPreference=secondaryPreferred}, 
LatencyMinimizingServerSelector{acceptableLatencyDifference=15 ms}]} 

我想即使MongoDB實例重新啓動,是否有解決方案來保持連接?非常感謝。

+0

您是否在連接字符串中提供了所有3臺服務器? – yaoxing

+0

@yaoxing是的,我使用彈簧數據來配置副本集 – fmchan

+0

你可以發佈你的配置嗎?特別是''socketTimeout'',... – xeraa

回答

0

非常感謝。我通過更改彈簧數據的配置來解決問題。 我之前設置了socket-timeout =「1500」。我不應該設置套接字超時。默認爲0(無限時間)。

+0

這對你真的有幫助嗎? –

+0

@IgorKhomenko它的效果很好。你呢? – fmchan

+0

即使設爲0,我也有同樣的問題 –

相關問題