【发布时间】:2014-07-22 01:58:14
【问题描述】:
MongoDB 位于具有三个成员的副本集中。有时一两个MongoDB实例重启,Java应用程序失去连接并显示以下错误,然后我必须手动重启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 实例重新启动,是否有任何解决方案可以保持连接?非常感谢。
【问题讨论】:
-
您是否在连接字符串中提供了所有 3 台服务器?
-
@yaoxing 是的,我使用spring数据来配置副本集
-
你能发布你的配置吗?尤其是
socketTimeout,... -
这不是我所期望的行为。副本集监视器旨在在服务器再次可用时重新连接。您使用的是什么版本的 Spring Data MongoDB?你等了多久才重新启动?您是否一次重新启动一个 MongoDB 实例?你能发布完整的堆栈跟踪,包括引起的吗?
标签: java apache mongodb database-connection