It seems that JDBCAuthProvider, JDBCUserProvider and JDBCGroupProvider are not using connection pooling. In my system, this is causing errors such as:
java.sql.SQLException: Network error IOException: Address already in use: connect
It seems to be thrown exclusively from JDBCGroupProvider, specifically in the getGroup and getMembers methods. This is likely due to my environment having 922 groups and 10,000 users. It does appear that the data is caches, however. So that may help somewhat.
I’‘m looking for ideas on avoiding these errors. Would it make sense for me to try to refactor JDBCGroupProvider to use DbConnectionManager to get a connection (which can be pooled)? Right now, it’'s getting a connection directly whenever it needs one.