Tôi đang sử dụng thành công resources.xml
trong WEB-INF
của tôi thư mục tương tự như thư mục này trong các dự án sản xuất của tôi:
<?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>
Một điểm khác biệt quan trọng là sử dụng DataSourceCreator = tomcat
. Điều này đảm bảo rằng TomEE tạo ra một nhóm đảm bảo xác thực kết nối ("SELECT 1") và loại bỏ các kết nối bị đình trệ / lỗi thời, do đó giải phóng tài nguyên trong nền.
Ngược lại, DataSourceCreator = dbpc
(là mặc định khi không được đặt:" Nhóm được cung cấp mặc định là DBCP ... ") hoạt động như bạn đã mô tả / gặp phải (hết giờ, ...). Hãy kiểm tra tài liệu liên quan
để có thêm sự khác biệt.
Cũng lưu ý rằng =
được sử dụng trong cấu hình làm việc của tôi. Tôi phát hiện ra rằng trong các bản phát hành TomEE trước đây, nó dường như hoạt động mà không có =
. Tuy nhiên, tôi khuyên bạn nên định cấu hình với =
nhất quán khi máy chủ ứng dụng mục tiêu của bạn là TomEE 1.7.2 trở lên.
Bạn cũng có thể tìm thấy thêm chi tiết về điều này trong Cấu hình DataSource trang.
Hy vọng nó sẽ hữu ích.