We're updating the issue view to help you get more done. 

DBConnectionManager does not recover from hitting Proxool 'simultaneous-build-throttle' limit.

Description

Proxool, the database connection pool manager, has a property that controls how many database connections can be required from the pool simultaneously (concurrent calls to 'getConnection()'). This is a quote from the Proxool documentation:

This is the maximum number of connections we can be building at any one time. That is, the number of new connections that have been requested but aren't yet available for use. Because connections can be built using more than one thread (for instance, when they are built on demand) and it takes a finite time between deciding to build the connection and it becoming available we need some way of ensuring that a lot of threads don't all decide to build a connection at once. (We could solve this in a smarter way - and indeed we will one day) Default is 10.

If this limit it is hit (which is likely to happen if you start Openfire), an SQLException is thrown. DBConnectionManager fails to recognize this, and does not retry to get the connection after the configured amount of milliseconds. Instead, the SQLException is passed to the class requesting the Connection.

Two changes are in order:

  • the property should be configurable';

  • DBConnectionManager should retry the get a connection from the pool after a timeout.

Environment

None

Acceptance Test - Entry

None

Activity

Show:
Guus der Kinderen
September 8, 2008, 7:02 PM

I suggest this additional change, which should prevent the problem from occuring in the first place.

Assignee

Gaston Dombiak

Reporter

Guus der Kinderen

Labels

None

Expected Effort

None

Ignite Forum URL

None

Components

Fix versions

Priority

Major
Configure