Tony Seebregts <[EMAIL PROTECTED]> writes: > Hi, > > I'm writing a connection pool manager using the > EmbeddedConnectionPoolDatasource class. The requesting object gets the > Connection object from a PooledConnection getConnection() , executes > a SQL statement and then closes the Connection. > > This correctly invokes the ConnectionEventListener.close() method - > which simply marks the pooled connection as available for reused. But > when I try to resuse the connection originally supplied by the > PooledConnection getConnection() method the connection is > closed. Calling getConnection returns me a new Connection which is > (AFAIK) not the idea.
Well, the point with pooled connections is that you use getConnection() and close() as with ordinary connections, but the underlying physical connection is kept open. The Connection object returned by getConnection() is a logical connection, and you cannot use it after it is closed. If you call getConnection() again, you will get a new logical connection, and therefore a new Connection object. However, the new logical connection might still use the same physical connection. -- Knut Anders
