Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在MongoDB重启后Java应用程序会失去连接?_Java_Apache_Mongodb_Database Connection - Fatal编程技术网

为什么在MongoDB重启后Java应用程序会失去连接?

为什么在MongoDB重启后Java应用程序会失去连接?,java,apache,mongodb,database-connection,Java,Apache,Mongodb,Database Connection,MongoDB位于一个包含三个成员的副本集中。有时一个或两个MongoDB实例重新启动,Java应用程序失去连接并显示以下错误,然后我必须手动重新启动Java应用程序,以便重新连接MongoDB副本集: org.springframework.dao.DataAccessResourceFailureException: Unable to connect to any server that matches {serverSelectors=[ReadPreferenceServerSel

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实例重新启动,是否有任何解决方案可以保持连接?非常感谢。

非常感谢。我通过更改spring数据的配置修复了这个问题。
我在之前设置了套接字超时=“1500”。我不应该设置套接字超时。默认值为0(无限时间)。

您是否提供了连接字符串中的所有3台服务器?@yaoxing是的,当然,我使用spring数据配置副本集。您可以发布您的配置吗?尤其是
socketTimeout
,这不是我所期望的行为。副本集监视器设计为在服务器重新可用时立即重新连接。您使用的是哪个版本的Spring Data MongoDB?重新启动之前,您等待了多长时间?是否一次重新启动一个MongoDB实例?你能发布完整的堆栈跟踪,包括由引起的吗?这真的对你有帮助吗?即使设置为0,我也有同样的问题