MongoDB Atlas Connection Issue

Five Stars

MongoDB Atlas Connection Issue

I have been looking around and cannot find a problem similar to mine. I am having an issue with MongoDB, in this case MongoDB Atlas, connecting to server. I am using a replica set and when I check my connection I eventually get a connection time out. Here is a snippet of some of the error message, I can post all of it if it would be more helpful. I have reconfirmed the username and password multiple times as well as the host/ports. This had happened to me before with another ETL tool and required some sort of patch. Any suggestions welcome.

 

Connection failed!
  org.talend.repository.nosql.exceptions.NoSQLServerException: Cannot connect to database!
      at org.talend.repository.nosql.db.util.mongodb.MongoDBConnectionUtil.checkConnection(MongoDBConnectionUtil.java:72)
      at org.talend.repository.nosql.db.provider.mongodb.MongoDBMetadataProvider.checkConnection(MongoDBMetadataProvider.java:153)
      at org.talend.repository.nosql.ui.common.AbstractNoSQLConnForm$1.widgetSelected(AbstractNoSQLConnForm.java:141)
      at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
      at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
      at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
      at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
      at org.eclipse.jface.window.Window.runEventLoop(Window.java:832)
      at org.eclipse.jface.window.Window.open(Window.java:808)
      at org.talend.repository.nosql.action.CreateNoSQLConnectionAction.doRun(CreateNoSQLConnectionAction.java:91)
      at org.talend.repository.ui.actions.AContextualAction$2.run(AContextualAction.java:630)
      at org.talend.repository.RepositoryWorkUnit.executeRun(RepositoryWorkUnit.java:99)
      at org.talend.core.repository.model.AbstractRepositoryFactory.executeRepositoryWorkUnit(AbstractRepositoryFactory.java:258)
      at org.talend.repository.localprovider.model.LocalRepositoryFactory.executeRepositoryWorkUnit(LocalRepositoryFactory.java:3420)
      at org.talend.core.repository.model.ProxyRepositoryFactory.executeRepositoryWorkUnit(ProxyRepositoryFactory.java:2247)
      at org.talend.repository.ui.actions.AContextualAction.run(AContextualAction.java:639)
      at org.talend.repository.viewer.action.RepoDoubleClickAction.run(RepoDoubleClickAction.java:119)
      at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.java:229)
      at org.eclipse.ui.navigator.CommonNavigatorManager$3.open(CommonNavigatorManager.java:185)
      at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
      at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:853)
      at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
      at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
      at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:178)
      at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:850)
      at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1142)
      at org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewer.java:462)
      at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1249)
      at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:278)
      at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:272)
      at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:313)
      at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
      at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
      at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
      at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
      at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
      at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
      at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
      at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
      at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
      at org.talend.rcp.intro.Application.start(Application.java:265)
      at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
      at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
      at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
  Caused by: org.talend.repository.nosql.exceptions.NoSQLReflectionException: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches WritableServerSelector. Client view of cluster state is {type=UNKNOWN, servers=[{address=wwnortonweb-stg-shard-00-00-0ykgb.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}, {address=wwnortonweb-stg-shard-00-01-0ykgb.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}, {address=wwnortonweb-stg-shard-00-02-0ykgb.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}]
      at org.talend.repository.nosql.reflection.NoSQLReflection$WrapException.wrap(NoSQLReflection.java:97)
      at org.talend.repository.nosql.reflection.NoSQLReflection.invokeMethod(NoSQLReflection.java:68)
      at org.talend.repository.nosql.reflection.NoSQLReflection.invokeMethod(NoSQLReflection.java:53)
      at org.talend.repository.nosql.db.util.mongodb.MongoDBConnectionUtil.checkConnection(MongoDBConnectionUtil.java:69)
      ... 58 more
  Caused by: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches WritableServerSelector. Client view of cluster state is {type=UNKNOWN, servers=[{address=wwnortonweb-stg-shard-00-00-0ykgb.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}, {address=wwnortonweb-stg-shard-00-01-0ykgb.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}, {address=wwnortonweb-stg-shard-00-02-0ykgb.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}]
      at com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster.java:375)
      at com.mongodb.connection.BaseCluster.selectServer(BaseCluster.java:104)
      at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:75)
      at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:71)
      at com.mongodb.binding.ClusterBinding.getWriteConnectionSource(ClusterBinding.java:68)
      at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:159)
      at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:134)
      at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:124)
      at com.mongodb.operation.CommandWriteOperation.execute(CommandWriteOperation.java:55)
      at com.mongodb.Mongo.execute(Mongo.java:819)
      at com.mongodb.Mongo$2.execute(Mongo.java:802)
      at com.mongodb.DB.executeCommand(DB.java:724)
      at com.mongodb.DB.getStats(DB.java:593)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.talend.core.utils.ReflectionUtils.invokeMethod(ReflectionUtils.java:166)
      at org.talend.repository.nosql.reflection.NoSQLReflection$3.toDo(NoSQLReflection.java:63)
      at org.talend.repository.nosql.reflection.NoSQLReflection$WrapException.wrap(NoSQLReflection.java:95)
      ... 61 more

Accepted Solutions
Five Stars

Re: MongoDB Atlas Connection Issue

I appreciate all the help. I actually was able to fix my specific issue. It turns out that the cluster name is case sensitive with the Java driver for MongoDB. Once I fixed the case to match I was able to connect. Here is a link to the relevant Jira ticket with MongoDB.

 

https://jira.mongodb.org/browse/JAVA-2569

 

Thanks again!


All Replies
Six Stars

Re: MongoDB Atlas Connection Issue

Hello,

You may be need to configure an IP_whitelist in MongoBD Atlas, and set the IP from where you run the job.

Have you tried it ?

Five Stars

Re: MongoDB Atlas Connection Issue

I will double check but I do want to note that I am able to connect to this Mongo server using other tools from this machine without issue (Robo 3T, SSIS). This would lead me to believe that its not a whitelisting issue, correct me if I am wrong.

Five Stars

Re: MongoDB Atlas Connection Issue

I was able to confirm that IP does not need to be white-listed for the cluster I am trying to connect to, still cannot connect.

Six Stars

Re: MongoDB Atlas Connection Issue

I use a MongoDB Atlas that I did not configure, however I have checked "Set Authentification database". Then a new field appears, I personnaly fill it by "admin" (depending on version: quotation marks are not always necessary in this field (and if it is not, I recommand you to not put them, it can create a deployment error for Cloud version)).

I hope it will help you

 
Five Stars

Re: MongoDB Atlas Connection Issue

I appreciate all the help. I actually was able to fix my specific issue. It turns out that the cluster name is case sensitive with the Java driver for MongoDB. Once I fixed the case to match I was able to connect. Here is a link to the relevant Jira ticket with MongoDB.

 

https://jira.mongodb.org/browse/JAVA-2569

 

Thanks again!

What’s New for Talend Spring ’19

Watch the recorded webinar!

Watch Now

Definitive Guide to Data Quality

Create systems and workflow to manage clean data ingestion and data transformation.

Download

Tutorial

Introduction to Talend Open Studio for Data Integration.

Watch

Downloads and Trials

Test drive Talend's enterprise products.

Downloads