2010-10-28 31 views

Trả lời

92

Cơ sở dữ liệu kết nối tổng hợp là một phương pháp được sử dụng để giữ kết nối cơ sở dữ liệu mở để chúng có thể được người khác sử dụng lại.

Thông thường, việc mở kết nối cơ sở dữ liệu là một hoạt động tốn kém, đặc biệt nếu cơ sở dữ liệu ở xa. Bạn phải mở các phiên mạng, xác thực, có quyền được kiểm tra, v.v. Pooling giữ cho các kết nối hoạt động sao cho, khi một kết nối được yêu cầu sau này, một trong những kết nối đang hoạt động được sử dụng tùy theo việc tạo một kết nối khác.

Tham khảo sơ đồ sau đây cho một vài đoạn văn tiếp theo:

+---------+ 
    |   | 
    | Clients | 
+---------+ | 
|   |-+ (1) +------+ (3) +----------+ 
| Clients | ===#===> | Open | =======> | RealOpen | 
|   | |  +------+   +----------+ 
+---------+ |  ^
       |   | (2) 
       |  /------\ 
       |  | Pool | 
       |  \------/ 
      (4) |  ^
       |   | (5) 
       |  +-------+ (6) +-----------+ 
       #===> | Close | ======> | RealClose | 
        +-------+   +-----------+ 

Trong đó là hình thức đơn giản, nó chỉ là một cuộc gọi API tương tự (1) đến một cuộc gọi API mở kết nối đó là tương tự như "thực " một. Điều này đầu tiên kiểm tra các hồ bơi cho một kết nối phù hợp (2) và, nếu có sẵn, đó là trao cho khách hàng. Nếu không, một cái mới sẽ được tạo (3).

Tương tự, có một cuộc gọi API gần (4) không thực sự gọi là kết nối gần đúng, thay vì đặt kết nối vào hồ bơi (5) để sử dụng sau này. Tại một số điểm, các kết nối trong hồ bơi có thể là thực sự là đã đóng (6).

Đó là một lời giải thích khá đơn giản. Việc triển khai thực có thể xử lý các kết nối tới nhiều máy chủ và nhiều tài khoản người dùng, họ có thể phân bổ trước một số đường cơ sở để một số kết nối sẵn sàng ngay lập tức và thực sự có thể đóng các kết nối cũ khi mẫu sử dụng giảm xuống.

+3

Bạn có đồ thị đẹp từ đâu? –

+6

Tôi đã làm nó từ đầu (ngớ ngẩn tôi). Nếu bạn muốn xem một số đồ họa phong nha, hãy xem câu trả lời của zengr. – paxdiablo

+0

Cảm ơn rất nhiều ... paxdiablo để giải thích và đồ thị. – sagar27

39

hình ảnh nói một ngàn chữ (paxdiablo đưa ra một mô tả tuyệt vời):

alt text

Source

+15

Và rõ ràng, hình ảnh _good_ cũng có thể nói vài trăm tác phẩm ASCII :-) – paxdiablo

+0

wow, giờ thật tuyệt vời, bạn đã tạo ra điều đó như thế nào? – zengr

+0

Cảm ơn rất nhiều ... zengr cho hình. – sagar27

0

Khái niệm kết nối tổng hợp không chỉ trong Java mà còn trên nhiều ngôn ngữ lập trình. Tạo một đối tượng kết nối mới là tốn kém để số kết nối cố định được thực hiện và duy trì trong vòng đời tạo một hồ bơi ảo Java Chỉ cần (http://javajust.com/javaques.html) xem câu hỏi 14 trên trang này

Các vấn đề liên quan