Trong một ứng dụng web Java mà tôi đang làm việc, chúng tôi đang sử dụng OracleConnectionPoolDataSource cho chức năng kết nối cơ sở dữ liệu. Mỗi cuộc gọi getConnection bao gồm ID và mật khẩu Oracle của người dùng. Vì vậy, mỗi người dùng trong một ý nghĩa kết thúc với hồ bơi kết nối cơ sở dữ liệu của riêng họ.Cài đặt và cập nhật thuộc tính kết nối nhóm (OracleConnectionPoolDataSource) để có hiệu suất tốt nhất
Hiện tại, chúng tôi đang sử dụng các giá trị mặc định cho hầu hết các thuộc tính. Điều này bao gồm
- MinLimit thiết lập để 0
- MaxLimit thiết lập để Integer.MAX_VALUE
- MaxStatementsLimit thiết lập để 0
- InactivityTimeout thiết lập để 0
- TimeToLiveTimeout thiết lập để 0
- AbandonedConnectionTimeout thiết lập để 0
- PropertyCheckInterval thiết lập để 900
- ConnectionWaitTimeout thiết lập để 0
Thông tin thêm về các đặc tính này có thể được tìm thấy tại Connection Cache Properties.
Hiện tại chúng tôi không có bất kỳ vấn đề kết nối cơ sở dữ liệu nào rõ ràng, nhưng nghĩ rằng hiệu suất có thể tốt hơn. Câu hỏi của tôi là ai đó có lời khuyên tốt hay một nguồn lực tốt về những gì chúng ta nên xem xét khi điều chỉnh các giá trị này.
Không hoạt độngThời gian chờ: Khi không hoạt độngThời gian hết hạn, kết nối vật lý cơ bản sẽ bị đóng. Tuy nhiên, kích thước của bộ nhớ cache không được phép thu nhỏ dưới minLimit, nếu đã được thiết lập. - Đây là tài liệu của Oracle và nói rằng minLimit sẽ không thu nhỏ ngay cả khi tất cả các đối tượng kết nối được đóng theo thời gian chờ. Điều này có nghĩa là nó cho phép vật thể cũ sống trong hồ bơi? http://docs.oracle.com/cd/B14117_01/java.101/b10979/conncache.htm#CDEBCBJC –