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
>>
> 
> 

Reply via email to