Jag använder framgångsrikt en resources.xml
i min WEB-INF
mapp som liknar denna i mina produktionsprojekt:
<?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 viktig skillnad är att använda DataSourceCreator = tomcat
. Detta säkerställer att TomEE skapar en pool som tar hand om anslutningsvalidering ("SELECT 1") och tar bort blockerade/föråldrade anslutningar, vilket frigör resurser i bakgrunden.
Däremot är DataSourceCreator = dbpc
(vilket är standard när inte inställt:"Standardpooler är DBCP... ") betedde sig som du beskrev/upplevde det (timeouts,...). Kontrollera relaterad dokumentation
för ytterligare skillnader.
Observera också att =
används i min arbetskonfiguration. Jag upptäckte att det i tidigare TomEE-utgåvor verkade fungera utan =
. Jag skulle dock rekommendera att konfigurera med =
konsekvent när din målapplikationsserver är TomEE 1.7.2 eller högre.
Ytterligare information om detta finns också i DataSource Configuration sida.
Hoppas det hjälper.