Hi Torsten,

A few comments on the new module:

> While Apache::DBI caches connections at connect time this module caches them 
> only at disconnect or DESTROY.

Why?  I don't understand the value in doing this.

> Apache::DBI does not distinguish between currently used and free connections. 
> Hence, it cannot support multiple identical connections. This module does.

To get multiple connections to the same database with Apache::DBI, you
just need to add something unique to the attributes hash in your connect
string.

> Apache::DBI resets all connections at request cleanup. Apache::DBI::Cache 
> intercepts disconnect or DESTROY events to do that.

For the rollback you mean?  That's not good.  The purpose of the
automatic rollback in Apache::DBI is to reset the connection when your
code dies due to a bug.  There won't be any disconnect or DESTROY called
in that situation.

> Apache::DBI::Cache includes the DBD driver name in the caching key while 
> Apache::DBI does not. Hence with Apache::DBI the following 2 DSNs can result 
> in the same DBI handle: dbi:mysql:dbname=db and dbi:Pg:dbname=db

Sounds like a good idea.

> I wrote this module because Apache::DBI had changed the logic of our programs.

How so?
 
> Further, we had really much DSNs mostly MySQL in various configuration files 
> all using different syntaxes to connect to a dozen databases on 2 database 
> hosts.

I think the normalization of connect strings is a good idea.  It could
be useful on its own, for people who don't use mod_perl.

- Perrin

Reply via email to