The documentation says, RemoveAbandoned connection setting will remove only the connections that are idle for the configured timeout. But I see it is closing the connections that are active.
The logic in DBCP implementatoin shows that it calculate the idle time from the time of the connection is created, irrespective of the connection is used. So it just close the connection in removeAbandonedTimeout.
In my code, I'm reusing the connection for more DB statements to do intensive db operations, which hold the connection for more than 5 minutes . The connection will never be idle for more than a few seconds.
My setting of removeabandonedTimeout = 300 brutally closes the connection in 5 minutes, without checking if the connection is in use or not.
I assume it should involve the activity of the statement object also to do the idle time calculation.