The whole part of persistent connections is outdated. In version 1.3.0:
«Removed the "persist" option, as all connections are now persistent. It can still be used, but it doesn't affect anything.»
As a matter of fact, this note is also wrong. Using option "persist" will throw an
Uncaught exception 'MongoConnectionException' with message '- Found unknown connection string option 'persist' with value 'x'
Table of Contents
- Replica Sets
- Domain Socket Support
- Connection Pooling (version 1.2.0-1.2.12 *only*)
- Persistent Connections (version up to 1.1.4 *only*)
Connecting to MongoDB can be as easy as new MongoClient, but there are many additional options and configurations. The documentation for MongoClient::__construct() covers all of the API options, but this page gives some more details and advice for practical use cases.
We've got a strange gotcha (it maybe a bug with the mongo driver and we will raise an appropriate bug with them), but I think this is worth noting here.....
We were connecting to a replica set, but always getting "couldn't determine master" being returned. Connecting to individual notes without replicaset being set worked fine (directly to the master, or slave okay for reads). Replicaset working fine, and all setup okay.
The issue was our network setup, despite being able to resolve dbname-X.domain.com the server names were returning as dbname-X without the domain.
Pinging dbname-X worked, but for some reason the driver isn't resolving it. Adding the entry to hosts fixed this though.