Evaluasi online dari tiga kumpulan koneksi adalah sebagai berikut:
C3P0 lebih memakan sumber daya dan mungkin sedikit lebih rendah dalam hal efisiensi.
Ada bug di DBCP dalam praktiknya, dan dalam beberapa kasus, banyak koneksi kosong tidak dapat dirilis. Hibernate 3.0 telah memberikan dukungannya.
Proxool memiliki lebih sedikit ulasan negatif dan direkomendasikan sekarang, dan juga menyediakan pemantauan instan status kumpulan koneksi untuk memfasilitasi kebocoran koneksi.
Kolam koneksi proxool
<bean id = "proxool_datasource"> <name properti = "driver-class" value = "oracle.jdbc.driver.oracledriver"/> <name properti = "driver-url" value = "jdbc: oracle: oracle: @localhost: 1521/ssid"/<"name" "" "" "" "" "" "" "" "" name "use" "" "" "" name "use" name = "" " <!-Pernyataan eksekusi SQL untuk tes-> <nama properti = "housekeepingtestsql" value = "pilih current_date"/> <!-Jumlah minimum koneksi idle yang dipertahankan (default 2)-> <nama properti = "prototipeCount" value = "2"/> <!-proxool secara otomatis mendeteksi waktu interval waktu (MilliseCing. Jika koneksi idle terdeteksi, itu akan segera didaur ulang. Default penghancuran batas waktu hingga 30 detik)-> <nama properti = "housekeepingsleepime" value = "30"/> <!-Waktu aktivitas maksimum (utas melebihi waktu ini akan dibunuh, default adalah 5 menit)-> <nama properti = "MaximumeActiveTime" nilai = "300"/<! value = "30"/> <!-Jumlah minimum koneksi (default 2)-> <name properti = "minimumConnectionCount" value = "10"/> <!-Jumlah koneksi maksimum (default 5)-> <nama properti = "MaximeConnectionCount" value = "30"/> <!-Jumlah koneksi maksimum pada waktu yang sama-> <"Nilai =" 30 "/> <! value = "10"/> </bean>
Kolam koneksi C3P0
<beanid = "DataSource" class = "com.mchange.v2.c3p0.compooledDataSource" dashar-metod = "tutup"> <propertiyname = "driverclass" value = "oracle.jdbc.driver.oracledriver"/> <PropertiyName = "jdbcurl" value = "jdbc: oracle: thin: @localhost: 1521/ssid"/> <propertiyname = "user" value = "user"/> <propertieName = "kata sandi" = "kata sandi"/> <properties = "initialpoolsize" value = "10"/> <kata sandi "/> <properties =" initialpoolSize "value =" 10 "//> <kata sandi"/> <propertion = "initialpoolSize" value = "10"//> <kata sandi "/> <propertion =" initialpoolSize "value =" 10 "//" value "=" "value =" Min "value =" value "value = 10"/> <Properties = " <propertyname = "maxpoolsize" value = "100"/> </tean> <!- Properti konfigurasi C3P0, melalui properti ini, berbagai kontrol efektif dapat dilakukan pada sumber data: memperoleh insquire: ketika koneksi dalam kumpulan koneksi digunakan, C3P0 membuat koneksi baru pada satu waktu; AcquireretryAttempts: Tentukan jumlah upaya berulang untuk memperoleh setelah kegagalan untuk mendapatkan koneksi baru dari database, standarnya adalah 30; AcquireretryDelay: Interval antara dua koneksi, unit milidetik, standarnya adalah 1000; Autocommitonclose: Ketika koneksi ditutup, semua operasi yang tidak berkomitmen digulung kembali secara default. Default salah; Automaticttable: C3P0 akan membuat tabel kosong bernama Tes dan menggunakan pernyataan kueri sendiri untuk pengujian. Jika parameter ini didefinisikan, properti PreferredTestQuery akan diabaikan. Anda tidak dapat melakukan apa pun di tabel tes ini, itu akan digunakan untuk tes C3P0, default ke null; Breakafteracquirefailure: Kegagalan untuk mendapatkan koneksi akan menyebabkan semua utas menunggu untuk mendapatkan koneksi untuk melempar pengecualian. Namun, sumber data masih valid dan terus mencoba mendapatkan koneksi saat berikutnya Anda menelepon getConnection (). Jika diatur ke True, sumber data akan menyatakan bahwa itu telah terputus dan ditutup secara permanen setelah upaya gagal untuk mendapatkan koneksi. Default salah; CheckOutTimeout: Ketika kumpulan koneksi digunakan, klien memanggil getConnection () dan menunggu waktu untuk mendapatkan koneksi baru. Setelah batas waktu, SQLException akan dilemparkan. Jika diatur ke 0, itu akan menunggu tanpa batas waktu. Unit milidetik, default adalah 0; ConnectionTesterClassName: Uji koneksi dengan mengimplementasikan ConnectionTester atau QueryConnectionTester, nama kelas harus diatur ke nama yang sepenuhnya memenuhi syarat. Defaultnya adalah com.mchange.v2.c3p0.impl.defaultConnectionTester; IDLeConnectionTestPeriod: Berapa detik yang diperlukan untuk memeriksa koneksi idle di semua kumpulan koneksi, standarnya adalah 0 untuk menunjukkan bahwa itu tidak diperiksa; InitialPoolSize: Jumlah koneksi yang dibuat selama inisialisasi harus dinilai antara minpoolsize dan maxpoolsize. Standarnya adalah 3; MAXIDLETIME: Waktu idle maksimum, koneksi yang melebihi waktu idle akan dibuang. Jika 0 atau negatif, itu tidak akan pernah dibuang. Default adalah 0; MaxPoolSize: Jumlah maksimum koneksi yang disimpan di kumpulan koneksi. Standarnya adalah 15; MaxStatements: Parameter standar JDBC, yang digunakan untuk mengontrol jumlah statementsed yang dimuat dalam sumber data. Tetapi karena pernyataan precache milik satu koneksi daripada seluruh kumpulan koneksi. Oleh karena itu, pengaturan parameter ini membutuhkan banyak faktor. Jika MaxStatements dan MaxStatementsPerConnection adalah 0, cache akan ditutup. Default adalah 0; MaxStatementsPerConnection: Jumlah maksimum pernyataan di -cache yang dimiliki satu koneksi dalam kumpulan koneksi. Default adalah 0; Numhelperthreads: C3P0 dioperasikan secara tidak sinkron, dan operasi JDBC lambat diselesaikan melalui proses bantuan. Memperluas operasi ini dapat secara efektif meningkatkan kinerja dan beberapa operasi dieksekusi secara bersamaan melalui banyak utas. Default adalah 3; PreferredTestQuery: Menentukan pernyataan pengujian bahwa semua tes koneksi dijalankan. Parameter ini dapat secara signifikan meningkatkan kecepatan tes saat menggunakan tes koneksi. Tabel yang diuji harus ada pada saat sumber data awal. Default adalah nol; PropertyCycle: Jumlah maksimum detik untuk menunggu sebelum pengguna memodifikasi parameter konfigurasi sistem. Standarnya adalah 300; TestConnectionOnCheckout: Harap hanya menggunakannya saat dibutuhkan karena konsumsi kinerja tinggi. Jika diatur ke True, validitasnya akan diverifikasi pada setiap pengajuan koneksi. Disarankan untuk menggunakan IdLeconnectionTestPeriod atau Automaticttable untuk meningkatkan kinerja pengujian koneksi. Default salah; TestConnectionOnCheckin: Jika diatur ke true, validitas koneksi akan diperiksa saat mendapatkan koneksi. Default salah. ->
Pool koneksi DBCP
<beanid = "dbcp_datasource" class = "org.apache.commons.dbcp.basicDataSource"> <propertiyname = "driverclassname" value = "oracle.jdbc.driver.oracledriver"> </properti> <PropertiyName = "url" value = "jdbc: oracle: tipis: @localhost: 1521/ssid"> </property> <propertiyname = "nama pengguna" value = "user"> </properti> <PropertiTyName = "kata sandi" value = "kata sandi"> </properti> <prop Properties = "inisialisasi" value = "3" <propertyname="maxActive"value="50"></property> <propertyname="maxActive"value="50"></property> <propertyname="maxIdle"value="20"></property> <propertyname="minIdle"value="5"></property> <propertyname="maxWait"value="10"></property> </bean> <!-- DBCP data source attribute description Ukuran Inisial: Jumlah awal koneksi saat menginisialisasi kumpulan koneksi Maxactive: Nilai maksimum koneksi kumpulan maxidle: nilai idle maksimum minidle: nilai idle minimum maxwait: waktu tunggu pembentukan koneksi maksimum ->