com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[]

10,062

Solution 1

in my case mongo was simply not running :)

please, check it with:

systemctl status mongod.service

and make sure it is enabled before rebooting the server:

systemctl enable mongod.service

Solution 2

Adding the answer so that it should be helpful for others, who might see similar issue in future.

We have resolved this issue, The problem was it was taking time to find the list of clusters and connect to that with default time, we can use "MongoClientOptionsFactoryBean" to customised the parameters and can override the default configuration.

@Bean
public MongoClientOptionsFactoryBean getMongoClientOptionsFactoryBean() {
        MongoClientOptionsFactoryBean mongoClientOptionsFactoryBean = new MongoClientOptionsFactoryBean();
        mongoClientOptionsFactoryBean.setConnectTimeout(timeout);
        mongoClientOptionsFactoryBean.setConnectionsPerHost(connectionsPerHost);
        mongoClientOptionsFactoryBean.setMaxWaitTime(maxWaitTime);
        mongoClientOptionsFactoryBean.setServerSelectionTimeout(ServerSelectionTimeout);
        mongoClientOptionsFactoryBean.setThreadsAllowedToBlockForConnectionMultiplier(connMultiplier);
        return mongoClientOptionsFactoryBean;
    }
Share:
10,062
Deepak Singh
Author by

Deepak Singh

I am working as Java/J2EE Programmer. Apart from Java I have interest in JavaScript and other related JavaScript frameworks (e.g. AngularJS, KnockoutJS, ReactJS etc.). Also like doing programming in Python and GoLang.

Updated on June 27, 2022

Comments

  • Deepak Singh
    Deepak Singh almost 2 years

    We are trying to connect to Mongo Atlas from Java code using

    URI "mongodb+srv::@serveraddress/dbname?retryWrites=true&w=1" but getting MongoTimeoutException exception.

    Strange thing here is in exception trace servers=[] list is empty.

    What could be the possible reasons for this error?

    MongoDB Server and Java Driver Details:

    MongoDB Server: 4.2

    MongoDB java Driver: 3.12.5

    spring-data-mongodb: 2.1.5.RELEASE

    Please let me know if any further information needed.

    Thank you for the help.

    com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[]
        at com.mongodb.internal.connection.BaseCluster.getDescription(BaseCluster.java:182)
        at com.mongodb.internal.connection.AbstractMultiServerCluster.getDescription(AbstractMultiServerCluster.java:54)
        at com.mongodb.client.internal.MongoClientDelegate.getConnectedClusterDescription(MongoClientDelegate.java:152)
        at com.mongodb.client.internal.MongoClientDelegate.createClientSession(MongoClientDelegate.java:103)
        at com.mongodb.Mongo.createClientSession(Mongo.java:832)
        at com.mongodb.MongoClient.startSession(MongoClient.java:582)
        at com.mongodb.MongoClient.startSession(MongoClient.java:569)
        at com.shutterfly.services.project.InitMongoDBCollection.onApplicationEvent(InitMongoDBCollection.java:36)
        at com.shutterfly.services.project.InitMongoDBCollection.onApplicationEvent(InitMongoDBCollection.java:20)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:359)
        at org.springframework.boot.context.event.EventPublishingRunListener.running(EventPublishingRunListener.java:105)
        at org.springframework.boot.SpringApplicationRunListeners.running(SpringApplicationRunListeners.java:78)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:332)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
        at com.shutterfly.services.project.Application.main(Application.java:18)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
        at java.lang.Thread.run(Thread.java:748)