Z powodzeniem używam pliku resources.xml
w moim WEB-INF
folder podobny do tego w moich projektach produkcyjnych:
<?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>
Jedną ważną różnicą jest użycie DataSourceCreator = tomcat
. Gwarantuje to, że TomEE tworzy pulę, która zajmuje się walidacją połączeń („SELECT 1”) i usuwa zablokowane/nieaktualne połączenia, zwalniając w ten sposób zasoby w tle.
Natomiast DataSourceCreator = dbpc
(co jest domyślne gdy nie jest ustawiona:"Domyślnie podane pule to DBCP... ") zachowywał się tak, jak to opisałeś/doświadczyłeś (przekroczenia czasu,...). Sprawdź dokumentacja powiązana
dla dalszych różnic.
Zauważ też, że =
jest używany w mojej konfiguracji roboczej. Odkryłem, że w poprzednich wydaniach TomEE wydawało się działać bez =
. Zalecam jednak skonfigurowanie za pomocą =
konsekwentnie, gdy docelowy serwer aplikacji to TomEE 1.7.2 lub nowszy.
Więcej informacji na ten temat można również znaleźć w Konfiguracji źródła danych strona.
Mam nadzieję, że to pomoże.