Untuk Menerapkan C3P0 dengan cara terbaik maka periksa jawaban ini
C3P0 :
Untuk aplikasi perusahaan, C3P0 adalah pendekatan terbaik. C3P0 adalah pustaka yang mudah digunakan untuk menambah driver JDBC (berbasis DriverManager) tradisional dengan JNDI-bindable DataSources, termasuk DataSources yang mengimplementasikan Connection and Statement Pooling, seperti yang dijelaskan oleh spesifikasi jdbc3 dan ekstensi jdbc2 std. C3P0 juga secara kuat menangani pemutusan DB dan transparan menghubungkan kembali pada resume sedangkan DBCP tidak pernah memulihkan koneksi jika tautan diambil dari bawahnya.
Jadi inilah mengapa c3p0 dan kumpulan koneksi lain juga telah menyiapkan cache pernyataan - ini memungkinkan kode aplikasi untuk menghindari berurusan dengan semua ini. Pernyataan biasanya disimpan dalam kumpulan LRU terbatas, sehingga pernyataan umum menggunakan kembali contoh PreparedStatement.
Yang lebih buruk lagi, DBCP mengembalikan objek Connection ke aplikasi yang transpor dasarnya telah rusak. Kasus penggunaan umum untuk c3p0 adalah mengganti kumpulan koneksi DBCP standar yang disertakan dengan Apache Tomcat. Sering kali, seorang programmer akan mengalami situasi di mana koneksi tidak didaur ulang dengan benar di kumpulan koneksi DBCP dan c3p0 adalah pengganti yang berharga dalam kasus ini.
Dalam pembaruan terkini, C3P0 memiliki beberapa fitur cemerlang. itu diberikan di bawah ini:
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setMinPoolSize();
dataSource.setMaxPoolSize();
dataSource.setMaxIdleTime();
dataSource.setMaxStatements();
dataSource.setMaxStatementsPerConnection();
dataSource.setMaxIdleTimeExcessConnections();
Di sini, max dan min poolsize menentukan batas-batas koneksi yang berarti bagaimana koneksi minimum dan maksimum yang akan diambil aplikasi ini. MaxIdleTime()
tentukan kapan akan melepaskan koneksi idle.
DBCP :
Pendekatan ini juga bagus tetapi memiliki beberapa kelemahan seperti koneksi timeout dan koneksi realeasing. C3P0 baik ketika kita menggunakan proyek mutithreading. Dalam proyek kami, kami menggunakan beberapa eksekusi utas secara bersamaan dengan menggunakan DBCP, lalu kami mendapat batas waktu koneksi jika kami menggunakan lebih banyak eksekusi utas. Jadi kami pergi dengan konfigurasi c3p0. Saya tidak akan merekomendasikan DBCP sama sekali, terutama itu adalah kemampuan membuang koneksi keluar dari kolam ketika DB hilang, ketidakmampuan untuk menyambung kembali ketika DB kembali dan ketidakmampuannya untuk secara dinamis menambahkan objek koneksi kembali ke kolam (itu menggantung selamanya di posting JDBCconnect I / O socket baca)
Terima kasih :)