Jeg bruger med succes en resources.xml
i min WEB-INF
mappe, der ligner denne i af mine produktionsprojekter:
<?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>
En vigtig forskel er at bruge DataSourceCreator = tomcat
. Dette sikrer, at TomEE opretter en pulje, som sørger for forbindelsesvalidering ("SELECT 1") og fjerner fastlåste/forældede forbindelser, hvilket frigør ressourcer i baggrunden.
Derimod er DataSourceCreator = dbpc
(som er standard når det ikke er angivet:"Standardangivne puljer er DBCP... ") opførte sig, som du beskrev/oplevede det (timeouts,...). Tjek relateret dokumentation
for yderligere forskelle.
Bemærk også, at =
bruges i min arbejdskonfiguration. Jeg opdagede, at i tidligere TomEE-udgivelser så det ud til at fungere uden =
. Jeg vil dog anbefale at konfigurere med =
konsekvent, når din målapplikationsserver er TomEE 1.7.2 eller nyere.
Yderligere detaljer om dette kan også findes i DataSource Configuration side.
Håber det hjælper.