Ik gebruik met succes een resources.xml
in mijn WEB-INF
map vergelijkbaar met deze in van mijn productieprojecten:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<Resource id="mysql-jdbc-jta-resource-stg" type="javax.sql.DataSource">
JtaManaged = true
DataSourceCreator = tomcat
validationQuery = SELECT 1
initialSize = 2
removeAbandoned = true
removeAbandonedTimeout = 120
driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql://db-stg.bar.someRegion.rds.amazonaws.com/someDBname
username = your-username
password = your-pw
</Resource>
</resources>
Een belangrijk verschil is het gebruik van DataSourceCreator = tomcat
. Dit zorgt ervoor dat TomEE een pool creëert die zorgt voor verbindingsvalidatie ("SELECT 1") en vastgelopen/verouderde verbindingen verwijdert, waardoor bronnen op de achtergrond worden vrijgemaakt.
Daarentegen is de DataSourceCreator = dbpc
(wat standaard is indien niet ingesteld:"Standaard opgegeven pools zijn DBCP... ") gedroeg zich zoals je het hebt beschreven/ervaren (time-outs,...). Controleer de gerelateerde documentatie
voor verdere verschillen.
Merk ook op dat =
wordt gebruikt in mijn werkconfiguratie. Ik ontdekte dat het in eerdere TomEE-releases leek te werken zonder =
. Ik zou echter aanraden om te configureren met =
consistent wanneer uw doeltoepassingsserver TomEE 1.7.2 of hoger is.
Verdere details hierover zijn ook te vinden in de DataSource-configuratie bladzijde.
Ik hoop dat het helpt.