Saya hanya ingin tahu konsep pooling koneksi database dan bagaimana cara mencapainya.
Saya hanya ingin tahu konsep pooling koneksi database dan bagaimana cara mencapainya.
Kumpulan koneksi basis data adalah metode yang digunakan untuk menjaga koneksi basis data tetap terbuka sehingga dapat digunakan kembali oleh orang lain.
Biasanya, membuka koneksi database adalah operasi yang mahal, terutama jika database jauh. Anda harus membuka sesi jaringan, mengautentikasi, memeriksa otorisasi, dan sebagainya. Pooling membuat koneksi tetap aktif sehingga, ketika koneksi diminta nanti, salah satu yang aktif digunakan karena harus membuat yang lain.
Lihat diagram berikut untuk beberapa paragraf berikut:
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
Dalam bentuknya yang paling sederhana, itu hanya panggilan API yang mirip (1) dengan panggilan API koneksi-terbuka yang mirip dengan yang "asli". Ini pertama-tama memeriksa kumpulan untuk koneksi yang sesuai (2) dan, jika tersedia, itu diberikan kepada klien. Kalau tidak, yang baru akan dibuat (3).
"Koneksi yang sesuai" hanyalah salah satu yang sudah memiliki akses ke database menggunakan informasi yang benar (seperti contoh database, kredensial, dan mungkin hal-hal lain).
Demikian pula, ada panggilan API dekat (4) yang tidak benar-benar memanggil koneksi dekat nyata , melainkan menempatkan koneksi ke kolam (5) untuk digunakan nanti. Pada titik tertentu, koneksi di kolam mungkin benar - benar ditutup (6).
Itu penjelasan yang cukup sederhana. Implementasi nyata mungkin dapat menangani koneksi ke beberapa server dan beberapa akun pengguna, mereka dapat melakukan pra-alokasi beberapa baseline koneksi sehingga beberapa siap segera, dan mereka mungkin benar-benar menutup koneksi lama ketika pola penggunaan menjadi tenang.
Gambar berbicara seribu kata (paxdiablo memberikan deskripsi yang luar biasa):
Sumber
sumber
Seperti namanya. Jika beberapa orang ingin berenang, mereka dapat berenang di kolam renang yang sama, apakah benar-benar masuk akal untuk membangun kolam renang baru setiap kali seseorang menambahkan? Waktu dan biaya adalah prioritas.
sumber
Penggabungan koneksi basis data hanyalah caching koneksi ke basis data sehingga dapat digunakan kembali lain kali untuk mengurangi biaya membangun koneksi baru setiap kali kita ingin terhubung ke basis data.
sumber
Anda dapat menggunakan pustaka apache commons untuk implementasi pooling koneksi secara transparan: http://commons.apache.org/dbcp/
DBCP juga merupakan kumpulan Hibernate yang didukung: http://www.informit.com/articles/article.aspx?p=353736&seqNum=4
sumber
Konsep Connection Pooling tidak hanya di Jawa tetapi di banyak bahasa pemrograman. Membuat objek koneksi baru itu mahal sehingga sejumlah koneksi tetap dibuat dan dipelihara dalam siklus hidup menciptakan pool virtual Java Just ( http://javajust.com/javaques.html ) lihat pertanyaan 14 pada halaman ini
sumber