Anda tidak benar-benar menggunakan kumpulan koneksi. Sebuah ConnectionPoolDataSource
tidak dimaksudkan untuk digunakan secara langsung. Ini dimaksudkan sebagai DataSource
(khusus) untuk PooledConnection
objek yang kemudian disimpan dalam kumpulan koneksi oleh DataSource
(normal) implementasi yang menyediakan penyatuan koneksi.
Pengembang normal tidak boleh menggunakan ConnectionPoolDataSource
secara langsung, ini dimaksudkan untuk digunakan dengan kumpulan koneksi yang disediakan oleh Server Aplikasi, atau untuk digabungkan ke dalam DataSource
tujuan umum s yang menyediakan penyatuan koneksi.
Saat Connection
diminta dari kumpulan koneksi, itu akan memeriksa PooledConnection
yang ada (atau minta yang baru dari ConnectionPoolDataSource
its ), ambil Connection
dan mengembalikannya ke pengguna. Saat pengguna menutup Connection
, PooledConnection
akan memberi sinyal pada kumpulan koneksi bahwa itu tersedia lagi.
Dalam hal ini Anda membuat PooledConnection
, mengambil Connection
dari itu dan kemudian membuang PooledConnection
. Ini berarti bahwa PooledConnection
ditinggalkan, dan koneksi fisiknya ke database tidak dapat digunakan kembali dan akan ditutup/dibuang ketika akhirnya sampah dikumpulkan (biasanya ketika kumpulan koneksi ingin menutup koneksi fisik, ia akan memanggil close()
pada PooledConnection
).
Anda juga perlu menggunakan kumpulan koneksi yang disediakan oleh Server Aplikasi Anda, atau menggunakan kumpulan koneksi tujuan umum seperti DBCP, c3p0 atau BoneCP.