On Sun, 13 Jan 2008 13:10:48 +0100 [EMAIL PROTECTED] wrote:

> Mike Meyer wrote at 2008-1-11 11:35 -0500:
> > ... existing connection in forked children ...
> >So the question is - what should the child do to get a database
> >connection? Can it just keep using the existing db & cu variables?
> This is very unlikely.

That's what I expected.

> When the child is forked, it inherits the connections from the
> parent -- but the protocols usually do not expect that several
> processes (parent and child) are using them asynchronously.

Right. The question is, what's the right way to handle the connection
on the child side of things?

> >If
> >not, does it need to do anything special, or avoid doing anything, in
> >order to not disrupt the parent processes use of those variables?
> Open a new connection in your forked child.

Obvious. What do I do with the old one? I started out by explicitly
closing it, but that seems to make oracle unhappy (internal errors of
various kinds).

> I finally abondoned this approach completely (because, LDAP
> was used deeply in my system and I had no control over the creation
> of new connections) and am now using "fork+exec".

Oddly enough, fork+exec doesn't make the problem go away, just
provides another possible solution. Open fd's can either be closed on
exec, or not. Hopefully, it's closed because the python objects that
referred to it are lost across the exec. I'm willing to believe that
should work. So how do I simulate what happens on exec without
actually doing the exec?

     Thanks,
     <mike
-- 
Mike Meyer <[EMAIL PROTECTED]>          http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.
_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org
http://mail.python.org/mailman/listinfo/db-sig

Reply via email to