Apache Commons DBCP default configuration for DSpace

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Apache Commons DBCP default configuration for DSpace

Hrafn Malmquist
Good day

I'm wondering what are desirable defaults for a DSpace, open source digital
repository software aimed especially at  academic, non-profit, and
commercial organizations (see https://duraspace.org/dspace/).

DSpace supports both Postgres and Oracle and recommends Tomcat, Jetty or
Caucho Resin. I suspect 9/10 installations use Tomcat.

DSpace comes packaged with Apache Commons DCBP 2.1.1. DSpace only
configures three configurations for DBCP2 using non-default settings. (see:
[1] and [2])

These are
maxTotal = 30
maxIdle = 10
maxWaitMillis = 5000

I am not sure what reasoning is behind the choice of these configuration
settings. DSpace is used by all sorts of institutions, some receiving very
high traffic. My guess is that using the DBCP2 defaults is recommended. My
question is, is this a good default configuration? Should there be more
configuration configurable by DSpace users in the DSpace config? There have
been reports of the database not being reachable because of too many idle
connections. According to one doc [3] maxWaitMillis should be at a
minimum of 10000 ms if I understand correctly.

Also, I assume there are benefits to upgrading the DBCP2 dependency to the
most recent version, 2.8.0. I'm not sure what the major benefits are
though. I can see v. 2.5.0 only runs on Java 8.

[1] -
https://github.com/DSpace/DSpace/blob/755f0732aeea7dd1449830593caa54d77890e5bd/dspace/config/local.cfg.EXAMPLE#L88-L99
[2] -
https://github.com/DSpace/DSpace/blob/755f0732aeea7dd1449830593caa54d77890e5bd/dspace/config/spring/api/core-hibernate.xml#L46-L48
[3] -
https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html#Intermittent_Database_Connection_Failures