Rumah > Artikel > pangkalan data > Bagaimana Mengendalikan Pengecualian \'Tiada Operasi Dibenarkan Selepas Sambungan Ditutup\' dalam Interaksi Pangkalan Data?
Tiada Operasi Dibenarkan Selepas Sambungan Ditutup Pengecualian
Penerangan:
Pengecualian ini berlaku apabila percubaan dibuat untuk melaksanakan operasi selepas sambungan ke pangkalan data telah ditutup. Punca asas selalunya ialah isu tamat masa sambungan.
Punca Kemungkinan:
Penyelesaian:
Penggabungan Sambungan
Pastikan bahawa perpustakaan pengumpulan sambungan pihak ketiga digunakan dan bukannya kumpulan sambungan lalai Hibernate, kerana ia tidak sesuai untuk persekitaran pengeluaran. Pertimbangkan untuk menggunakan C3P0 atau DBCP.
Konfigurasi Tamat Masa Sebelah Pelayan
Laraskan parameter tunggu_masa tamat dalam MySQL kepada nilai yang lebih tinggi untuk mengelakkan penutupan sambungan pramatang.
Konfigurasi Tamat Masa Sebelah Klien
Tingkatkan sifat maxConnectionAge dan maxIdleTime kolam sambungan untuk memanjangkan hayat sambungan.
Contoh Konfigurasi C3P0:
<code class="xml"><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 --> </code>
Nota Tambahan:
Harta "c3p0.testConnectionOnCheckout=true" boleh ditetapkan untuk menguji sambungan sebelum digunakan, tetapi ini mungkin menjejaskan prestasi.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Pengecualian \'Tiada Operasi Dibenarkan Selepas Sambungan Ditutup\' dalam Interaksi Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!