Erik Aronesty wrote: > Does clone just return the current handle? Does not seem so.
> Many handles are multi-process safe and can be reused in that way. > Possibly that's the default. Not in DBD::Oracle and Oracle Client library unfortunately. I think I've nearly sussed it now. I've implemented clone in DBIx::Log4perl by simply copying the private_DBIx__Log4perl hash ref from the old connection handle to the new one returned by clone and only have a few issues (internal to DBIx::Log4perl) with closures used in other packages. Still interested in other input from anyone else who has done this (knows about this). Martin > On Tue, Jan 19, 2010 at 4:31 PM, Martin J. Evans > <martin.ev...@easysoft.com> wrote: >> Erik Aronesty wrote: >>> On Tue, Jan 19, 2010 at 4:04 PM, Martin J. Evans >>> <martin.ev...@easysoft.com> wrote: >>>> Hi, >>>> >>>> Is there anything special a subclassed DBI module (DBIx::Log4perl in >>>> this case) needs to do for the clone method? >>>> >>>> The DBI docs currently say "The clone method duplicates the $dbh >>>> connection by connecting with the same parameters ($dsn, $user, >>>> $password) as originally used." but I don't see any call to connect when >>>> clone is called. >>> Presumably the "clone" method gives the driver an opportunity to >>> duplicate an already-connected connection in a more efficient way than >>> simply reconnecting from "scratch". >>> >>> >> It would appear so. I've added a "mock" clone method to DBIx::Log4perl >> and obviously it is called but I never see a second call to connect so >> either I am misunderstanding things here and/or the docs are a >> simplification. >> >> Martin >> > >