Saya berhasil menggunakan resources.xml
di WEB-INF
saya folder yang mirip dengan yang ini di proyek produksi saya:
<?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>
Satu perbedaan penting adalah menggunakan DataSourceCreator = tomcat
. Ini memastikan bahwa TomEE membuat kumpulan yang menangani validasi koneksi ("SELECT 1") dan menghapus koneksi yang terhenti/ketinggalan zaman, sehingga membebaskan sumber daya di latar belakang.
Sebaliknya, DataSourceCreator = dbpc
(yang merupakan default saat tidak disetel:"Kolam default yang disediakan adalah DBCP... ") berperilaku seperti yang Anda jelaskan/alami (batas waktu,...). Periksa dokumentasi terkait
untuk perbedaan lebih lanjut.
Perhatikan juga, bahwa =
digunakan dalam konfigurasi kerja saya. Saya menemukan bahwa dalam rilis TomEE sebelumnya tampaknya berfungsi tanpa =
. Namun, saya akan merekomendasikan untuk mengonfigurasi dengan =
secara konsisten ketika server aplikasi target Anda adalah TomEE 1.7.2 atau lebih tinggi.
Detail lebih lanjut tentang ini juga dapat ditemukan di Konfigurasi Sumber Data halaman.
Semoga membantu.