विंडोज़ पर पोस्टग्रेएसक्यूएल एक कनेक्शन के लिए रखरखाव सेटिंग्स का समर्थन नहीं करता है। यह setsockopt(s, IPPROTO_TCP, TCP_KEEPIDLE, ...)
का उपयोग कर रहा है जो आईएमएचओ लिनक्स-विशिष्ट है।
आप Postgres के लिए एक पैच लागू कर सकते हैं ताकि यह SIO_KEEPALIVE_VALS
. src/backend/libpq/pqcomm.c
में कुछ इस तरह StreamConnection
. में समारोह।
{
DWORD bytesReturned = 0;
tcp_keepalive vals;
vals.keepalivetime = 60*1000; /* milliseconds */
vals.keepaliveinterval = 60*1000; /* milliseconds */
vals.onoff = 1;
err = WSAIoctl(
port->sock,
SIO_KEEPALIVE_VALS,
(char *)&vals, sizeof(vals), NULL, 0,
&bytesReturned, NULL, NULL);
if (err == -1) {
elog(LOG, "WSAIoctl(SIO_KEEPALIVE_VALS) failed: %m");
}
}
या आप विंडोज रजिस्ट्री में सिस्टम-वाइड सेटिंग्स सेट कर सकते हैं HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
KeepAliveInterval
का उपयोग करके और KeepAliveTime
सेटिंग्स (विंडोज विस्टा और बाद में गिनती हमेशा 10 होती है)।