Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to properly test and close a connexion ? #48

Closed
boogheta opened this issue Nov 26, 2013 · 7 comments
Closed

How to properly test and close a connexion ? #48

boogheta opened this issue Nov 26, 2013 · 7 comments

Comments

@boogheta
Copy link

Hi,

I'm using txmongo in an environment with a lot of running parallel tasks (twitter and rss collection mostly) and was wondering which best practice would be recommended to use txmongo :

  • sometimes my connexion just seem to hang, how do I check whether it's still up?
  • if I want to briefly open a new connexion before closing it again, should I close my conenxion afterwards? How? (conn[db]._Database__factory.doStop() seems to do the trick but does it really?)
  • which one of the lazyMongoConnexionPool or MongoConnectionPool should I use? Looking at the code I'm not sure to get the difference here
@fiorix
Copy link
Collaborator

fiorix commented Nov 26, 2013

See inline

On Nov 26, 2013, at 12:59 PM, Benjamin Ooghe-Tabanou notifications@github.com wrote:

Hi,

I'm using txmongo in an environment with a lot of running parallel tasks (twitter and rss collection mostly) and was wondering which best practice would be recommended to use txmongo :

• sometimes my connexion just seem to hang, how do I check whether it's still up?

Hard to say. I had similar problems back in 2009-2010 when I gave up using MongoDB.

• if I want to briefly open a new connexion before closing it again, should I close my conenxion afterwards? How? (conn[db].Database_factory.doStop() seems to do the trick but does it really?)

You can open as many new connections as you need without closing existing ones. To terminate a connection (or pool) there's the disconnect() method.

• which one of the lazyMongoConnexionPool or MongoConnectionPool should I use? Looking at the code I'm not sure to get the difference here

MongoConnectionPool() blocks until the connection is established. If your script is a batch type of thing it's safe to use it because you don't want to execute any operations before the connection is made.

The lazy and friends return the handler immediately and are suitable for having persistent connections to Mongo within web servers and daemons in general. Basically, you don't want to wait for the connection to be established during the program startup and expect it to do so in background.


Reply to this email directly or view it on GitHub.

@boogheta
Copy link
Author

Thanks a lot, I understand better the Lazy part now. I saw the other issue regarding Auth with Lazy and Pools though and since I'm using auth it looks like I'm limited to the classic connexion.
Tryouts showed that the amount of opened connections is likely to cause the hangs after some time, so I will try and make a wrapper for single connections that would be closed right after. I will keep this issue updated in case it can help others.
If I understand correctly you're not using mongodb anymore and therefore don't maintain this lib anymore, would you by any chance know of any more maintained fork?

@fiorix
Copy link
Collaborator

fiorix commented Nov 27, 2013

I still don't understand why you want to close the connection and reconnecting later. And yes, I'm no longer using mongo and thus not actively maintaining this lib for about 2-3 years.

On Nov 27, 2013, at 10:08 AM, Benjamin Ooghe-Tabanou notifications@github.com wrote:

Thanks a lot, I understand better the Lazy part now. I saw the other issue regarding Auth with Lazy and Pools though and since I'm using auth it looks like I'm limited to the classic connexion.
Tryouts showed that the amount of opened connections is likely to cause the hangs after some time, so I will try and make a wrapper for single connections that would be closed right after. I will keep this issue updated in case it can help others.
If I understand correctly you're not using mongodb anymore and therefore don't maintain this lib anymore, would you by any chance know of any more maintained fork?


Reply to this email directly or view it on GitHub.

@trenton42
Copy link
Contributor

This is the fork that I have been using: https://github.com/chergert/txmongo. I have been contributing here and there, and might be able to help with some issues.

@trenton42
Copy link
Contributor

And thanks @fiorix for getting it all started ;)

@fiorix
Copy link
Collaborator

fiorix commented Nov 27, 2013

My pleasure. I really enjoyed working on it back in the days.

On Nov 27, 2013, at 11:07 AM, Trenton Broughton notifications@github.com wrote:

And thanks @fiorix for getting it all started ;)


Reply to this email directly or view it on GitHub.

@boogheta
Copy link
Author

@fiorix: Since I'm using Auth I apparently have no choice but to use the regular connexion instead of a pool. Which means I need to open multiple ones if I want multiple db operations to happen simultaneously, which means I need to make sure I'm not opening too many and therefore need to close some of them. And in any case the closing of my daemon should use the disconnect at least for clean exit.

@trenton42: Great thanks, I'll take a look at the commits history to see what you improved. Any chance you worked on the auth issue with the other connexion types maybe?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants