Saya mengatur koneksi dan timeout perintah ke 10 menit di aplikasi saya (sisi klien).
Daripada aplikasi saya menjalankan kueri sederhana: SELECT pg_sleep(65)
Pada beberapa server berfungsi dengan baik, tetapi server lain menutup koneksi setelah 60 detik.
Mungkinkah ini semacam konfigurasi server PostgreSQL yang membatasi batas waktu dan mengabaikan pengaturan klien saya?
postgresql
timeout
Andrzej Gis
sumber
sumber
SHOW statement_timeout;
Jawaban:
Iya itu mungkin
Ada dua pengaturan yang disebutkan dalam dokumen (
idle_in_transaction_session_timeout
baru untuk versi 9.6x)statement_timeout
(bilangan bulat)idle_in_transaction_session_timeout
(bilangan bulat)Sangat penting untuk tidak mengatur
statement_timeout
di postgresql.conf kecuali Anda ingin hiburan.Berikut ini contoh kerjanya
sumber
Tidak keluar dari kotak. Akan sangat mudah untuk mengkompilasi server khusus yang mengabaikan pengaturan Anda.
Tetapi jauh lebih mungkin adalah bahwa koneksi Anda terputus oleh firewall atau gateway yang tidak suka koneksi idle.
Jika Anda memiliki akses ke file log server, itu akan memberikan petunjuk yang baik. Jika klien mengatakan server menutup koneksi secara tidak terduga, dan server mengatakan klien menutup koneksi secara tidak terduga, maka mungkin ada sesuatu di antara klien dan server yang sebenarnya memutuskan koneksi.
sumber
Ya itu mungkin. Ada beberapa Parameter Koneksi yang perlu Anda atur.
Silakan lihat tautan di bawah ini. https://jdbc.postgresql.org/documentation/head/connect.html
loginTimeout connectTimeout socketTimeout cancelSignalTimeout
sumber