Chúng tôi sử dụng C3P0 cả trong và ngoài Tomcat. Tuy nhiên, việc giám sát và ghi nhật ký không phải là lớn nhất, vì vậy chúng ta sẽ bắt đầu sử dụng pool kết nối SpringSource. Một trong những tính năng tốt nhất mà tôi mong đợi là hiển thị chính xác câu lệnh SQL nào đang chạy vào bất kỳ thời điểm cụ thể nào.
Một điều chúng tôi phải thêm vào C3P0 là một phương tiện của thời gian một yêu cầu kết nối đặc biệt chờ đợi bao lâu cho một kết nối khi hồ bơi là đầy đủ và tất cả các kết nối đang bận rộn:
public Connection getConnection() throws SQLException
{
long t = System.currentTimeMillis();
ComboPooledDataSource ds = (ComboPooledDataSource) getDelegate();
Connection conn = null;
if (ds.getNumBusyConnections() == ds.getMaxPoolSize())
{
logger.info("Pool (" + ds.getUser() + ") full, waiting for connection");
conn = ds.getConnection();
t = System.currentTimeMillis() - t;
logger.info("Connection busy wait time (" + ds.getUser() + "): " + t + "ms");
}
else
{
conn = ds.getConnection();
}
return conn;
}
Vì vậy, những điều bạn phải xem xét:
- hỗ trợ và hoạt động (như bạn đã lưu ý)
- tốc độ
- kiểm soát giám sát, khai thác gỗ và sản xuất
BoneCP có vẻ nhanh (trước đây tôi chưa từng nghe về nó) nhưng thực ra C3P0 cũng nhanh hơn chúng tôi. Quay trở lại khi chúng tôi thử nghiệm một vài 4 hoặc 5 năm trước, DBCP đã chậm chạp một cách khủng khiếp (có vẻ như đã sửa), hồ bơi của Oracle khá chậm và C3P0 rất nhanh. Bài kiểm tra của chúng tôi trông rất giống với bài kiểm tra trên trang web của BoneCP.
Tôi không biết gì về khả năng quản lý của BoneCP. # 3 đã trở thành chức năng quan trọng nhất trong môi trường sản xuất của chúng tôi.
Nguồn
2011-11-08 21:30:18
Đối với những người tò mò, tôi đã kết thúc với BoneCP. –
Bạn có liên kết nào với tài liệu cấu hình chi tiết về BoneCP không? Hoặc u có thể chia sẻ làm thế nào để sử dụng BoneCP trong JBoss? –