Karena DBCP membuat koneksi mysql yang dikembalikan terbuka untuk permintaan koneksi yang akan datang, mereka menjadi korban Waktu habis Server MySQL .
DBCP memiliki sejumlah fitur yang dapat membantu (dapat digunakan mulai dari Tomcat 5.5 IIRC).
validationQuery="SELECT 1"
testOnBorrow="true"
Validasi memastikan bahwa koneksi valid sebelum mengembalikannya ke aplikasi web yang menjalankan metode 'pinjam'. Bendera tentu saja mengaktifkan fitur ini.
Jika batas waktu (8 jam saya percaya) telah berlalu dan koneksi mati, maka koneksi baru diuji (jika tidak ada lagi, itu dibuat) dan diberikan ke webapp.
Kemungkinan pendekatan lain:
-
gunakan
testWhileIdle="true"
DBCP di pengaturan sumber daya Anda untuk juga memeriksa koneksi yang tidak aktif sebelum permintaan efektif terdeteksi. -
Gunakan 'connectionProperties' untuk memperkuat koneksi MySQL Anda (mis.
autoReconnect/autoReconnectForPools=true
)