libpq
अंतर्निहित PostgreSQL क्लाइंट लाइब्रेरी, में keepalives
TCP कीपैलिव्स को सक्षम करने का विकल्प होता है ।
ऐसा लगता है कि PgAdmin-III आपको सीधे मनमाने ढंग से कनेक्शन मापदंडों को निर्दिष्ट करने की अनुमति नहीं देता है, लेकिन एक वर्कअराउंड है।
जब आप PgAdmin-III में कनेक्शन कॉन्फ़िगरेशन को देखते हैं, तो आपको "सेवा" विकल्प दिखाई देगा। यह कनेक्शन सेवा फ़ाइल को संदर्भित करता है । इसका उपयोग करने के लिए, ~/.pg_service.conf
सामग्री के साथ बनाएं :
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
और PgAdmin-III से कनेक्ट होने myherokudb
पर service
फ़ील्ड में प्रवेश करें ।
यह PgAdmin-III को सेवा फ़ाइल में निर्दिष्ट कनेक्शन मापदंडों का उपयोग करने के लिए रखेगा, जिसमें रखवाले को सक्षम करना भी शामिल है।
(यदि आप Windows पर हैं, तो सेवा फ़ाइल किसी अन्य स्थान पर हो सकती है; दस्तावेज़ देखें)।
रखने वाले libpq
को नियंत्रित करने के लिए कोई पर्यावरण चर नहीं है , इसलिए आप इसे इस तरह से सेट नहीं कर सकते, आपको एक सेवा फ़ाइल का उपयोग करना होगा।
PgAdmin-III के लिए अतिरिक्त कनेक्शन मापदंडों के लिए समर्थन जोड़ना, या रख-रखाव पैरामीटर को नियंत्रित करने के लिए कनेक्शन विकल्पों में एक चेकबॉक्स, बहुत तुच्छ होना चाहिए। मुझे आश्चर्य है कि अगर डेव समझ गए कि आप काम के लिए फंड देने के लिए अपने प्रस्ताव को फिर से क्या कह रहे हैं।
अद्यतन : सेवा फ़ाइल को PGSYSCONFDIR
पर्यावरण चर में निर्दिष्ट स्थान पर देखा जाता है । यदि कोई परेशान है, तो यह एक प्लेटफ़ॉर्म-विशिष्ट स्थान पर डिफॉल्ट करता है, जो विंडोज के लिए ठीक से प्रलेखित नहीं लगता है। मैं एक दस्तावेज पैच प्रस्तुत करूँगा। दस्तावेज़ के लिए.pgpass
अपना रास्ता दिखाता है %APPDATA%\postgresql\pgpass.conf
, हालांकि, ऐसा ~/.pg_service.conf
होना चाहिए %APPDATA%\postgresql\pg_service.conf
... लेकिन ऐसा प्रतीत नहीं होता है।
वास्तव में, सही रास्ता है:
%APPDATA%\postgresql\.pg_service.conf
इसलिए:
- प्रारंभ> चलाएँ
- `% APPDATA%
- अगर यह मौजूद नहीं है तो डायरेक्टरी "पोस्टग्रैक्कल" बनाएं
- ऊपर दी गई सामग्री के साथ एक पाठ फ़ाइल के रूप में फ़ाइल ".pg_service.conf" बनाएं (पुनः फ़ाइल नामकरण के नीचे नोट देखें)
- PgAdmin-III में, होस्ट नाम में "लोकलहोस्ट" और सेवा क्षेत्र में सेवा नाम दर्ज करें।
मैंने विंडोज पर परीक्षण किया, और पाया कि आप host
विंडोज पर PgAdmin-III रिक्त क्षेत्र को नहीं छोड़ सकते । PgAdmin-III कनेक्शन संवाद में निर्दिष्ट की गई सेवा फ़ाइल में निर्दिष्ट किसी भी होस्ट को ओवरराइड करने लगता है। इसलिए आपको host
सेवा फ़ाइल में एक कुंजी शामिल नहीं करनी चाहिए । (मैं एक बग रिपोर्ट करूँगा)।
विंडोज में "ज्ञात फ़ाइल प्रकारों के लिए फ़ाइल एक्सटेंशन छिपाएं" बंद है, इसलिए आप गलती से इसके .pg_service.conf.txt
बजाय कॉल नहीं करते हैं। यदि आप अनिश्चित हैं कि यह सही नाम है या नहीं, सूची दृश्य में विंडोज एक्सप्लोरर में "टाइप" कॉलम की जांच करें; यह "टेक्स्ट डॉक्यूमेंट" पढ़ेगा यदि इसे गलत तरीके से नाम दिया गया है .pg_service.conf.txt
, और CONF File
यदि यह सही नाम है .pg_service.conf
। यदि आपको इसका नाम बदलने में समस्या है, तो "ज्ञात फ़ाइल प्रकारों के लिए फ़ाइल एक्सटेंशन छुपाएं" बंद करें, या नोटपैड ++ जैसे एक समझदार पाठ संपादक का उपयोग करें, जो आपको पसंद की गई फ़ाइलों को बनाने देगा।
फ़ाइल नाम में अग्रणी अवधि (डॉट) नोट करें। हाँ, यह अलग है pgpass.conf
, और हाँ, यह कष्टप्रद है, एक बग पर सीमा।