Randy Speh wrote: > I would be very interested to see what your connection > pooling code looks like. I been trying to choose the > most appropriate connection pooling technique and have > been considering adapting one myself. Although, I'd > really rather use something from the open source > community. >
Currently there is dbcp in Commons, Turbine connection pooling, and Avalon connection pooling. Both DBCP and Avalon provide similar semantics inspired by the official JDBC DataSource specifications--when you "close" the connection, it returns the Connection to the pool. Turbine (if I recall) makes you explicitly return it to the pool yourself. I won't get involved with which is the best pattern. Beyond that basic difference, there is alot of difference in the manner that the connection pools are configured. Since I don't have any real information on DBCP and Turbine pooling, I won't talk about them. Here is what Avalon's Configuration looks like: <connection> <pool-controller min="2" max="10" grow="2"> <keep-alive>SELECT 1 FROM DUAL</keep-alive> </pool-controller> <driver>oracle.jdbc.driver.OracleDriver</driver> <dburl>jdbc:oracle:thin:@localhost:1521:ORCL</dburl> <user>scott</user> <password>tiger</password> </connection> The Pool Controller specifies how many connections the pool starts with ("min"), the absolute maximum number of connections ("max"), and how many new connections it creates at a time when it needs more ("grow"). It is important to note that the maximum is absolute. The pool will not go beyond that maximum number. The reason being that some drivers have license restrictions and it helps the pool to not violate the license. The last part ("keep-alive") is the query used by the pool to determine if the connection has been closed by the server. We found out that not all databases are created equal, and while "SELECT 1" works for many databases, Oracle requires that "1" be selected from the dummy table "DUAL", and others like Informix require you to select from an application's table. You can determine for yourself if this is desirable--and possibly DBCP might steal ideas to narrow the differences. Who knows.... -- "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." - Benjamin Franklin -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>