It seems to me that there must be a bug in the interaction between the
PoolBrokerService and the ConnectionPool:

public DBConnection getConnection(
                String driver,
                String url,
                String username,
                String password )
{
...
        pool = (ConnectionPool) pools.get(url);
...
        return pool.getConnection(driver, url, username, password);
}


The pools are indexed by url only, NOT by username and password.
I also checked if pool.getConnection(driver,url,username,password) would
possibly handle this, but they don't.  What happens is that if a connection
for another username exists, it (a connection with the incorrect user) is
returned.

This can be fixed by adding the username to the key of the pools Hashtable
(driver and password may safely be left out):

        pool = (ConnectionPool) pools.get(url + username);


<MyTwoCents>

What bothers me is that the ConnectionPool.getConnection(...) method even
takes the database parameters.  If instead the creator took the parameters
and saved them as instance variables, and the getConnection function took no
parameters, this bug would probably not have been introduced to the system.

A similar thing applies to the PoolBrokerService itself.  Why isn't there a
method like this in there:

public void registerPool(String poolname, String driver, String url, String
username, String password)

The PoolBrokerService.getConnection(...) method would then not need to take
the database parameters, only the name of the pool.  This would be a lot
cleaner.  I have nothing to gain from having driver/url/username/password
accessible everywhere in the system, much better to give each pool a
meaningful name, and reference it by that.

The modifications are minor, and I can submit a set of patches.  The old
functions can even stay, one could choose which version to use.

</MyTwoCents>

More to come, on a related subject.


Magnus



------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
Problems?:           [EMAIL PROTECTED]

Reply via email to