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

Ứng dụng Spring mất kết nối với MySql sau 8 giờ. Làm thế nào để cấu hình đúng?

Câu trả lời ngắn gọn là nó phải là đủ. DBCP hỗ trợ kiểm tra kết nối khi mượn từ nhóm kết nối (mặc định), nhưng cũng hỗ trợ kiểm tra khi trả lại và kiểm tra khi không hoạt động.

Nó cũng đáng để hiểu những gì có thể xảy ra ở đây. Có vẻ như có điều gì đó giữa máy chủ Tomcat của bạn và cơ sở dữ liệu đang ngắt kết nối không hoạt động sau khi hết thời gian chờ (chẳng hạn như bộ định tuyến hoặc tường lửa). Vấn đề với điều này là Tomcat cho rằng nó vẫn có kết nối hợp lệ, cố gắng thực hiện một số công việc với kết nối và không thành công, nhưng vẫn giữ kết nối tồn tại và đưa nó trở lại nhóm. Bây giờ, bất kỳ nỗ lực nào khác để nói chuyện với cơ sở dữ liệu sẽ không thành công nếu nó được cung cấp cùng một kết nối bị hỏng từ nhóm.

Tôi nghĩ đó là 'Release It!' Xuất sắc của Michael Nygard! cuốn sách đã mô tả kịch bản này trong một trong những câu chuyện từ chiến hào của anh ấy.

Bạn cũng sẽ muốn xem xét cách MySQL dọn dẹp các kết nối đã chết vì khi Tomcat mất kết nối sau 8 giờ thì DB cũng sẽ không biết về kết nối bị lỗi.

Một điểm cuối cùng, nếu bạn đang sử dụng Tomcat 7, hãy chuyển sang kết nối mới của họ hồ bơi vì nó mang lại hiệu suất tốt hơn DBCP.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loại dữ liệu tốt nhất để lưu trữ giá trị tiền trong MySQL

  2. lỗi liên tục xuất hiện trong mã của tôi (kết nối đã mở)

  3. MySQL:Giao dịch so với Bảng khóa

  4. MySQL:Không thể đặt tên cho bảng trong trường hợp Upper Camel (Pascal Case)

  5. Lấy dữ liệu từ MySQL theo lô qua Python