in reply to Re: Sharing a database connection across fork()
in thread Sharing a database connection across fork()

To summarize, here's what http://www.perlmonks.org/?node_id=594175 demonstrated, and what worked for me:

(Parent) establish database connection in $dbh. (Parent) Fork. (Child) $dbh_child = $dbh->connect(inherited connection parameters); (Child) $dbh->{InactiveDestroy} = 1; (Child) undef $dbh; (Child) # proceed to use $dbh_child (Parent) # proceed to use $dbh (Child) exit; (Parent) # continue using $dbh
(Note that I edited the above to replace the clone() call with a connect() call, as recommended by wrog.) Thanks to all!

Replies are listed 'Best First'.
Re^3: Sharing a database connection across fork()
by wrog (Friar) on Sep 13, 2014 at 01:08 UTC

    Current DBI docs claim use of clone() without an argument is deprecated (because there's some question of which attributes should be copied over, which may change, or something). No idea how likely they'll go through with it.

    Also, if the original connection specs are available then there's no reason not to just do a fresh connect() in the child (since that's what clone does anyway), i.e., you're not actually saving anything by inheriting it from the parent.

      I confirmed that I was able to replace the clone() call with a connect() call, using the connection specs inherited from the parent, as you suggested.