-
Type: Task
-
Resolution: Done
-
Priority: Trivial - P5
-
None
-
Affects Version/s: 3.0.1
-
Component/s: Implementation
-
None
-
Environment:Windows 10
MS VS 2015
MongoDB 3.3.5
MongoDB C++11 Driver 3.0.1
Using mongoDB 2.2, every time I connected to the server within a function, I did this:
boost::scoped_ptr<mongo::ScopedDbConnection> conn(mongo::ScopedDbConnection::getScopedDbConnection ("localhost" ) )
Then I would use conn->get() and when done conn->done().
In 3.3.5, I am doing this within each function:
mongocxx::instance inst{}; mongocxx::client conn{mongocxx::uri}
This is, apparently wrong to do this every time I want to make a connection. The first time, it works perfectly. The server window outputs:
connection accepted from 127.0.0.1:57896 #30 (2 connections now open)
and dutifully ends the connection at the end of the function block
end connection 127.0.0.1:57896 (1 connection now open).
(The 1 connection is the mongo shell). But when I repeat this in a subsequent block and try a command, it throws an exception:
No suitable servers found (`serverSelectionTryOnce` set): [Failed to resolve 'localhost']: generic server error.
So, am I supposed to create the instance/connection once and pass it to every function I write (since globals are evil)?
- related to
-
CXX-1196 Improve mongocxx::instance documentation
- Closed