I have implemented an ExceptionSorter which returns true on certain Oracle exceptions. This is exectued properly when an SQLException is thrown and the database connection is removed from the pool as expected. However, the inUseConnectionCount paramter in JBossManagedConnectionPool is decremented each time and never recovers the proper count. It will display a negative number (-5), for example, if the ExceptionSorter returns true a corresponding number of times. The only way I have found to recover the proper inUSeConnectionCount is to un-deploy and re-deploy the pool-ds.xml. Using Flush() has no affect, restarting or recreating the pool resets the count to 0 but then it never changes. Regardless of pool activity it, along with maxconnectionsinuse and connectioncount, remain 0.