Why Mongo is not throwing exception if connecting using different methods?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















I have a problem where I need Mongo to throw exception on time out. The problem is that using this way to create my MongoClient it doesn't throw an exception:



String database = "database";
String username = "myUser;

String connectionStringValue = "mongodb://" + username + ":" + repository.getPassword() + "@"
+ "myHost" + ":" + "27027" + "/" + database
+ "?serverSelectionTimeoutMS=10000";

ConnectionString connectionString = new ConnectionString(connectionStringValue);

MongoClient client = MongoClients.create(connectionString);


Everything works. I can connect to the database, add documents, etc. But it doesn't throw an exception when there is a timeout situation. Instead it returns a null document.



But if I connect using this way:



MongoCredential credential = createCredentials(information);
ServerAddress serverAdress = new ServerAddress("myHost",
27027);
MongoClientOptions options = MongoClientOptions.builder().serverSelectionTimeout(10000).build();
return new MongoClient(serverAdress, credential, options);


Then again, everything works but here I get the timeout when expected instead of a null document in response.
I'm wondering what am I missing here in order to make it throw an exception after the time out for the first case. I need to use the first case because there I'm using com.mongodb.client.MongoClient instead of com.mongodb.MongoClient (second case).



Thanks!










share|improve this question





























    1















    I have a problem where I need Mongo to throw exception on time out. The problem is that using this way to create my MongoClient it doesn't throw an exception:



    String database = "database";
    String username = "myUser;

    String connectionStringValue = "mongodb://" + username + ":" + repository.getPassword() + "@"
    + "myHost" + ":" + "27027" + "/" + database
    + "?serverSelectionTimeoutMS=10000";

    ConnectionString connectionString = new ConnectionString(connectionStringValue);

    MongoClient client = MongoClients.create(connectionString);


    Everything works. I can connect to the database, add documents, etc. But it doesn't throw an exception when there is a timeout situation. Instead it returns a null document.



    But if I connect using this way:



    MongoCredential credential = createCredentials(information);
    ServerAddress serverAdress = new ServerAddress("myHost",
    27027);
    MongoClientOptions options = MongoClientOptions.builder().serverSelectionTimeout(10000).build();
    return new MongoClient(serverAdress, credential, options);


    Then again, everything works but here I get the timeout when expected instead of a null document in response.
    I'm wondering what am I missing here in order to make it throw an exception after the time out for the first case. I need to use the first case because there I'm using com.mongodb.client.MongoClient instead of com.mongodb.MongoClient (second case).



    Thanks!










    share|improve this question

























      1












      1








      1








      I have a problem where I need Mongo to throw exception on time out. The problem is that using this way to create my MongoClient it doesn't throw an exception:



      String database = "database";
      String username = "myUser;

      String connectionStringValue = "mongodb://" + username + ":" + repository.getPassword() + "@"
      + "myHost" + ":" + "27027" + "/" + database
      + "?serverSelectionTimeoutMS=10000";

      ConnectionString connectionString = new ConnectionString(connectionStringValue);

      MongoClient client = MongoClients.create(connectionString);


      Everything works. I can connect to the database, add documents, etc. But it doesn't throw an exception when there is a timeout situation. Instead it returns a null document.



      But if I connect using this way:



      MongoCredential credential = createCredentials(information);
      ServerAddress serverAdress = new ServerAddress("myHost",
      27027);
      MongoClientOptions options = MongoClientOptions.builder().serverSelectionTimeout(10000).build();
      return new MongoClient(serverAdress, credential, options);


      Then again, everything works but here I get the timeout when expected instead of a null document in response.
      I'm wondering what am I missing here in order to make it throw an exception after the time out for the first case. I need to use the first case because there I'm using com.mongodb.client.MongoClient instead of com.mongodb.MongoClient (second case).



      Thanks!










      share|improve this question














      I have a problem where I need Mongo to throw exception on time out. The problem is that using this way to create my MongoClient it doesn't throw an exception:



      String database = "database";
      String username = "myUser;

      String connectionStringValue = "mongodb://" + username + ":" + repository.getPassword() + "@"
      + "myHost" + ":" + "27027" + "/" + database
      + "?serverSelectionTimeoutMS=10000";

      ConnectionString connectionString = new ConnectionString(connectionStringValue);

      MongoClient client = MongoClients.create(connectionString);


      Everything works. I can connect to the database, add documents, etc. But it doesn't throw an exception when there is a timeout situation. Instead it returns a null document.



      But if I connect using this way:



      MongoCredential credential = createCredentials(information);
      ServerAddress serverAdress = new ServerAddress("myHost",
      27027);
      MongoClientOptions options = MongoClientOptions.builder().serverSelectionTimeout(10000).build();
      return new MongoClient(serverAdress, credential, options);


      Then again, everything works but here I get the timeout when expected instead of a null document in response.
      I'm wondering what am I missing here in order to make it throw an exception after the time out for the first case. I need to use the first case because there I'm using com.mongodb.client.MongoClient instead of com.mongodb.MongoClient (second case).



      Thanks!







      java mongodb






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 26 '18 at 22:42









      IgorIgor

      56521240




      56521240
























          1 Answer
          1






          active

          oldest

          votes


















          0














          When using connectionString to connect to mongodb, try use the parameter connectTimeoutMS=10000
          rather then serverSelectionTimeoutMS=10000 , i would also add a socket timeout: socketTimeoutMS=10000 , so your full connection uri will be:



          String connectionStringValue = "mongodb://" + username + ":" + repository.getPassword() + "@"
          + "myHost" + ":" + "27027" + "/" + database
          + "?connectTimeoutMS=10000"
          + "&socketTimeoutMS=10000;


          this is according to mongodb manual, I hope that's helps.






          share|improve this answer
























          • yeah, I tried that before, but still not working... Seems like there is some default configuration when using com.mongodb.MongoClient.

            – Igor
            Nov 27 '18 at 19:51











          • Well then idk, sorry :/

            – Chai Halfon
            Nov 28 '18 at 6:04












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53490229%2fwhy-mongo-is-not-throwing-exception-if-connecting-using-different-methods%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          When using connectionString to connect to mongodb, try use the parameter connectTimeoutMS=10000
          rather then serverSelectionTimeoutMS=10000 , i would also add a socket timeout: socketTimeoutMS=10000 , so your full connection uri will be:



          String connectionStringValue = "mongodb://" + username + ":" + repository.getPassword() + "@"
          + "myHost" + ":" + "27027" + "/" + database
          + "?connectTimeoutMS=10000"
          + "&socketTimeoutMS=10000;


          this is according to mongodb manual, I hope that's helps.






          share|improve this answer
























          • yeah, I tried that before, but still not working... Seems like there is some default configuration when using com.mongodb.MongoClient.

            – Igor
            Nov 27 '18 at 19:51











          • Well then idk, sorry :/

            – Chai Halfon
            Nov 28 '18 at 6:04
















          0














          When using connectionString to connect to mongodb, try use the parameter connectTimeoutMS=10000
          rather then serverSelectionTimeoutMS=10000 , i would also add a socket timeout: socketTimeoutMS=10000 , so your full connection uri will be:



          String connectionStringValue = "mongodb://" + username + ":" + repository.getPassword() + "@"
          + "myHost" + ":" + "27027" + "/" + database
          + "?connectTimeoutMS=10000"
          + "&socketTimeoutMS=10000;


          this is according to mongodb manual, I hope that's helps.






          share|improve this answer
























          • yeah, I tried that before, but still not working... Seems like there is some default configuration when using com.mongodb.MongoClient.

            – Igor
            Nov 27 '18 at 19:51











          • Well then idk, sorry :/

            – Chai Halfon
            Nov 28 '18 at 6:04














          0












          0








          0







          When using connectionString to connect to mongodb, try use the parameter connectTimeoutMS=10000
          rather then serverSelectionTimeoutMS=10000 , i would also add a socket timeout: socketTimeoutMS=10000 , so your full connection uri will be:



          String connectionStringValue = "mongodb://" + username + ":" + repository.getPassword() + "@"
          + "myHost" + ":" + "27027" + "/" + database
          + "?connectTimeoutMS=10000"
          + "&socketTimeoutMS=10000;


          this is according to mongodb manual, I hope that's helps.






          share|improve this answer













          When using connectionString to connect to mongodb, try use the parameter connectTimeoutMS=10000
          rather then serverSelectionTimeoutMS=10000 , i would also add a socket timeout: socketTimeoutMS=10000 , so your full connection uri will be:



          String connectionStringValue = "mongodb://" + username + ":" + repository.getPassword() + "@"
          + "myHost" + ":" + "27027" + "/" + database
          + "?connectTimeoutMS=10000"
          + "&socketTimeoutMS=10000;


          this is according to mongodb manual, I hope that's helps.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 27 '18 at 6:04









          Chai HalfonChai Halfon

          42635




          42635













          • yeah, I tried that before, but still not working... Seems like there is some default configuration when using com.mongodb.MongoClient.

            – Igor
            Nov 27 '18 at 19:51











          • Well then idk, sorry :/

            – Chai Halfon
            Nov 28 '18 at 6:04



















          • yeah, I tried that before, but still not working... Seems like there is some default configuration when using com.mongodb.MongoClient.

            – Igor
            Nov 27 '18 at 19:51











          • Well then idk, sorry :/

            – Chai Halfon
            Nov 28 '18 at 6:04

















          yeah, I tried that before, but still not working... Seems like there is some default configuration when using com.mongodb.MongoClient.

          – Igor
          Nov 27 '18 at 19:51





          yeah, I tried that before, but still not working... Seems like there is some default configuration when using com.mongodb.MongoClient.

          – Igor
          Nov 27 '18 at 19:51













          Well then idk, sorry :/

          – Chai Halfon
          Nov 28 '18 at 6:04





          Well then idk, sorry :/

          – Chai Halfon
          Nov 28 '18 at 6:04




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53490229%2fwhy-mongo-is-not-throwing-exception-if-connecting-using-different-methods%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Wiesbaden

          Marschland

          Dieringhausen