Seperti yang ditunjukkan @swanliu, ini karena koneksi yang buruk.
Namun sebelum menyesuaikan waktu server dan batas waktu klien, saya akan mencoba dan menggunakan strategi penyatuan koneksi yang lebih baik terlebih dahulu.
Pengumpulan Koneksi
Hibernate sendiri mengakui bahwa strategi penyatuan koneksinya minimal
Saya pribadi menggunakan C3P0
. namun ada alternatif lain yang tersedia termasuk DBCP
.
Lihat
Di bawah ini adalah konfigurasi minimal C3P0 yang digunakan dalam aplikasi saya:
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="c3p0.acquire_increment">1</property>
<property name="c3p0.idle_test_period">100</property> <!-- seconds -->
<property name="c3p0.max_size">100</property>
<property name="c3p0.max_statements">0</property>
<property name="c3p0.min_size">10</property>
<property name="c3p0.timeout">1800</property> <!-- seconds -->
Sunting:
Saya memperbarui file konfigurasi (Referensi
), karena saya baru saja menyalin dan menempelkan satu untuk proyek saya sebelumnya. Batas waktu idealnya harus menyelesaikan masalah, Jika itu tidak berhasil untuk Anda, ada solusi mahal yang menurut saya dapat Anda lihat:
Buat file "c3p0.properties" yang harus berada di root classpath (yaitu tidak ada cara untuk menimpanya untuk bagian tertentu dari aplikasi). (Referensi )
# c3p0.properties
c3p0.testConnectionOnCheckout=true
Dengan konfigurasi ini setiap koneksi diuji sebelum digunakan. Namun hal itu dapat memengaruhi kinerja situs.