[ http://issues.apache.org/jira/browse/DBCP-189?page=all ]
Phil Steitz resolved DBCP-189. ------------------------------ Resolution: Won't Fix The dbcp API makes no commitments regarding preserving invariants of the underlying pool, other than that the exposed parameters work as advertised and the pool API is used to borrow and return objects. In particular, the FIFO behavior of commons-pool is not guaranteed to be preserved by dbcp. If there is more to this ticket than that (i.e., if there is a performance or concurrency problem here as well), please reopen. > [dbcp] Threads do not get a Connection in FIFO mode > --------------------------------------------------- > > Key: DBCP-189 > URL: http://issues.apache.org/jira/browse/DBCP-189 > Project: Commons Dbcp > Issue Type: Bug > Affects Versions: 1.2.2 > Environment: commons-dbcp-1.2.1.jar > Reporter: rod > Attachments: DBCP-189.txt > > > hi, > the SharedPoolDataSource class uses the class GenericKeyedObjectPool which > has a FIFO behavior. > the problem is that when all connections in the pool are used, the > synchronised method SharedPoolDataSource.getPooledConnectionAndInfo > calls the borrowObject() blocking method and does not release its monitor. > as a result, all other threads asking for a connection get blocked trying to > get the monitor > and will get a connection later in a non-FIFO mode. > i think the fix is to synchronized only the code block : > if (pool == null) { > try { > registerPool(username, password); > } catch (NamingException e) { > throw new SQLNestedException("RegisterPool failed", e); > } > } > instead of synchronizing the whole method. > thanks > rodolphe -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]