Karl Putland wrote: > Chuck Esterbrook wrote: > > >On Friday 03 May 2002 06:55 am, Costas Malamas wrote: > > > >>Well, I am convinced, I'll go ahead and try it out. > >> > >>What I am not following from the docs though is how do you use > >>DBPool; I am not familiar with threading (at all!), so I don't get > >>the setup. E.g. do you call DBPool once in your > application (somehow > >>have a central DBPool that you get connections from) or do can you > >>call it whenever you need a connection and it will "know" which > >>connection to give back? I am guessing the former --in which case, > >>where in WK is the best place to put it? subclass Application? > >> > > > >Every time you think of subclassing Application just to store > >application wide resources, you could just as easily (or > more easily) > >get along with a module for this purpose and put the objects > in module > >level variables. > > > >This might also lead to further uses of that module in other > settings. > > > >Surprisingly, there is not yet a Wiki page on this that I see. > > > >Looking back at the MiddleKit code that uses the DBPool, it > simply gets > >a connection like this: > > conn = self._pool.getConnection() > > > >So as you guessed, you ask the pool for a connection > whenever you need > >one. When you lose the reference to the connection, it will > go back in > >the pool for other threads to use. > > > >Maybe the doc string needs further improvement. > > > > > >-Chuck > > > > The one thing that I never figured out was how to use DBPool > in a fasion > that actually allowed the pool to exits once and keep the pool of > connections. > This was my motication to write my own pooling mechanism. > I see now that you store is as an instance variable somewhere in a > module that gets > used in the application. This was not obvious. It would be more > obvious if the > DBPool used it's own class variables or module variables to store the > pool eg. > ConnectionPool stores the pool in a class variable with locks > around the > pool > creation. All instances of ConnectionPool in my case share the same > physical > pool of connections.
Doesn't that limit you to a single ConnectionPool? What if you want multiple pools for different databases? Also, my intuition tells me that if I have 3 different instances of ConnectionPool, then they are really 3 different pools. I wouldn't expect them to share the pool. I personally think that shared global resources like a connection pool are best modeled in Python using module-level variables. I agree that DbPool's documentation could be beefed up, but I think the idea is right. - Geoff _______________________________________________________________ Have big pipes? SourceForge.net is looking for download mirrors. We supply the hardware. You get the recognition. Email Us: [EMAIL PROTECTED] _______________________________________________ Webware-discuss mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/webware-discuss
