[ http://issues.apache.org/jira/browse/DBCP-189?page=all ]
Jerome Lacoste updated DBCP-189: -------------------------------- Attachment: DBCP-189.txt Patch that implements the requested changes. Only unit tested. Didn't add a regression test. > [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 > Type: Bug > Versions: 1.2 Final > 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]