testWhileIdle
không phải là thuộc tính c3p0. Nó không gây hại gì, nhưng có thể khiến bạn nhầm lẫn khi nghĩ rằng bạn đang làm điều gì đó mà bạn không phải như vậy. Bạn đang thử nghiệm các kết nối không hoạt động, có lẽ quá thường xuyên, vì bạn cũng đang thử nghiệm Kết nối khi thanh toán.
Cấu hình của bạn nằm rải rác ở hai nơi. Tôi không chắc cấu hình Spring và hibernate sẽ tương tác như thế nào. c3p0 DataSources kết xuất cấu hình tại INFO trên pool init. Bạn có thể muốn xác minh rằng bạn có cấu hình như mong đợi.
Vấn đề của bạn, có vẻ như bạn bị rò rỉ kết nối. Bạn phải đảm bảo rằng bất kỳ Kết nối nào được kiểm tra từ Nguồn dữ liệu đều được đóng () ed một cách đáng tin cậy trong phương thức cuối cùng hoặc thông qua thử với tài nguyên trong Java 7+.
Sử dụng tham số cấu hình c3p0 unreturnedConnectionTimeout
và debugUnreturnedConnectionStackTraces
để gỡ lỗi rò rỉ kết nối.
Xem tại đây .
(Lưu ý:Trong hibernate.cfg, chúng sẽ là hibernate.c3p0.unreturnedConnectionTimeout
và hibernate.c3p0.debugUnreturnedConnectionStackTraces
. Hoặc bạn có thể đặt chúng trực tiếp hơn trong xml Spring của mình.)