Apabila menyambung ke pangkalan data PostgreSQL, menghadapi ralat "org .postgresql.util.PSQLException: FATAL: maaf, terlalu ramai pelanggan sudah" menunjukkan bahawa yang dibenarkan had sambungan serentak telah melebihi.
Ini berlaku apabila kod membuka berbilang sambungan ke pangkalan data tanpa menutupnya dengan betul. Semasa memusnahkan dan mengumpul sampah kelas biasanya melepaskan pegangannya pada sambungan, adalah penting untuk menutup sambungan ke pangkalan data secara eksplisit.
Contoh pembetulan ialah menambahkan kod berikut dalam mana-mana kelas yang mencipta sambungan:
protected void finalize() throws Throwable { try { your_connection.close(); } catch (SQLException e) { e.printStackTrace(); } super.finalize(); }
Ini memastikan sambungan dilepaskan apabila kelas adalah sampah dikutip.
Ia juga berguna untuk menyemak bilangan maksimum sambungan yang dibenarkan oleh PostgreSQL:
show max_connections;
Lalai ialah 100. Jika anda memerlukan lebih banyak sambungan, anda boleh meningkatkan nilai ini dengan mengedit fail postgresql.conf. Cari "max_connections" dan laraskannya dengan sewajarnya.
Untuk menentukan sambungan yang sedang dibuka atau program mana yang tidak melepaskannya, anda boleh menggunakan arahan berikut:
SELECT * FROM pg_stat_activity;
SELECT COUNT(*) from pg_stat_activity;
Akhir sekali, ingat untuk menjejaki sambungan yang sedang dibuat dan pastikan semuanya ditutup dengan betul.
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'org.postgresql.util.PSQLException: FATAL: maaf, sudah terlalu ramai pelanggan' dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!