Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để tránh các kết nối DB bị đình trệ với nhóm kết nối JDBC của TomEE?

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự gia tăng nguyên tử với Khung thực thể

  2. mức độ an toàn của các tuyên bố do PDO chuẩn bị

  3. Cách đơn giản nhất để lưu trữ dữ liệu từ chương trình java sang MySQL là gì?

  4. Nhận số lượng bản ghi cho tất cả các bảng trong cơ sở dữ liệu MySQL

  5. Tôi có thể nhóm trường bằng cách sử dụng mysql như thế nào?