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;
}
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
add a comment |
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
add a comment |
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
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
java mongodb
asked Nov 26 '18 at 22:42
IgorIgor
56521240
56521240
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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.
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
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
add a comment |
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.
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
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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