Apa itu Connection Pooling?

Connection pooling adalah istilah untuk pengelolaan koneksi pengguna yang membuat kueri database. Meskipun banyak pengguna mungkin tidak menyadarinya, ketika ada sejumlah besar pengguna yang mencari akses ke server aplikasi tempat basis data berada, volume koneksi yang besar mungkin menjadi hampir tidak mungkin bagi server untuk memelihara koneksi yang baik dengan semua koneksi di kali ini. Rekayasa perangkat lunak yang memungkinkan penyatuan koneksi memungkinkan server untuk mengelola koneksi dengan baik terlepas dari volume tinggi koneksi yang membuat kueri dan memungkinkan respons terhadap kueri ini dengan kecepatan sub-detik.

Connection pooling adalah istilah untuk pengelolaan koneksi pengguna yang membuat kueri database.

Koneksi harus memiliki konfigurasi yang sama untuk disertakan dalam kumpulan koneksi, sehingga sebagian besar program kumpulan koneksi server memiliki kumpulan koneksi yang berbeda yang berjalan secara bersamaan. Saat pengguna berusaha untuk terhubung, dia ditugaskan ke kumpulan dengan konfigurasi serupa, jika ruang tersedia. Jika tidak ada ruang yang tersedia, permintaan akan diantrekan untuk diberikan segera setelah tersedia. Seorang pengguna mungkin tidak menyadari bahwa dia berada dalam antrian, tetapi mungkin hanya memperhatikan bahwa database tampak lambat dalam respons kueri; namun, di bagian belakang sistem manajemen basis data, ada pemindaian kumpulan untuk menemukan ruang bagi pengguna untuk menemukan koneksi terbuka. Sebagian besar program penyatuan koneksi memiliki daftar set pengguna maksimum per kumpulan dan jumlah pengaturan waktu minimum di mana koneksi dapat tetap tidak aktif sebelum koneksi terputus dan ketersediaan dikembalikan ke kumpulan.

Pada pembuatan kumpulan koneksi, sejumlah objek koneksi dibuat dan ditambahkan ke kumpulan. Agar sebuah kolam dianggap aktif, dibutuhkan jumlah objek minimum. Objek koneksi ini adalah kursi ketersediaan yang mengikat koneksi ke kolam, dan mereka dapat dibuat dan ditambahkan ke kolam sesuai kebutuhan hingga maksimum yang diizinkan di dalam kolam. Karena pengguna puas dengan kueri mereka dan melepaskan objek koneksi mereka, objek dikembalikan ke kumpulan oleh program kumpulan koneksi untuk digunakan oleh pengguna lain atau pengguna yang sama ketika dia kembali.

Salah satu faktor yang dapat memperlambat waktu respons dalam penyatuan koneksi adalah apa yang disebut fragmentasi kumpulan. Fragmentasi kumpulan biasanya terjadi karena keamanan terintegrasi atau terlalu banyak basis data yang berada di kumpulan server yang ada. Sistem manajemen basis data yang mengautentikasi pengguna dan kemudian mengantri atau menugaskan mereka ke objek kumpulan koneksi yang ada menghabiskan memori, dan desain sistem yang lebih ketat untuk akses sering kali menyelesaikan masalah terlalu banyak basis data. Desain sistem keamanan terintegrasi dari program berbasis Windows di banyak program penyatuan koneksi menuntut bahwa hanya satu pengguna berbasis Windows yang berada dalam kumpulan pada satu waktu. Ini dapat diselesaikan dengan membuat lebih banyak kumpulan untuk mengakomodasi permintaan tambahan yang perlu dijawab secara bersamaan.

Jika program connection-pooling mendeteksi pengguna telah menganggur di luar jangka waktu yang ditentukan atau koneksi terputus, itu akan mengembalikan objek koneksi ke pool sebagai objek yang tidak valid. Jika server mati saat koneksi sedang berlangsung, koneksi masih dapat ditarik meskipun kumpulan koneksi tidak mengetahui koneksi yang terputus. Program kumpulan koneksi ActiveX biasanya kemudian melanjutkan untuk menghapus kumpulan koneksi ini saat server di-restart.