आपके पास जो त्रुटि संदेश है वह डेटाबेस को पुनरारंभ करने का कोई कारण नहीं है; यह एक डेटाबेस समस्या नहीं है। आपके एप्लिकेशन में बहुत अधिक कनेक्शन हैं, शायद इसलिए कि आप उसका कनेक्शन पूल सेट करना भूल गए हैं। यह कोई DB सर्वर समस्या नहीं है और आप DB सर्वर को पुनरारंभ किए बिना इसे ठीक कर सकते हैं।
यदि आप अपना Play एप्लिकेशन बंद कर देते हैं या उसके कनेक्शन पूल को पुन:कॉन्फ़िगर करते हैं तो समस्या दूर हो जाएगी।
एक अन्य विकल्प यह है कि आप अपने हरोकू इंस्टेंस को रखरखाव मोड में रखें और फिर इसे बाहर निकालें।
चूंकि heroku आपको सुपरयूज़र के रूप में कनेक्ट करने की अनुमति नहीं देता (अच्छे कारणों से) आप उस आरक्षित सुपरयुसर स्लॉट का उपयोग कनेक्शन को जोड़ने और प्रबंधित करने के लिए नहीं कर सकते जैसे आप सामान्य PostgreSQL के साथ करते हैं।
यह भी देखें:
Heroku "psql :FATAL:शेष कनेक्शन स्लॉट गैर-प्रतिकृति सुपरयूज़र कनेक्शन के लिए आरक्षित हैं"
http://wiki.postgresql.org/wiki/Number_Of_Database_Connections
यदि आप एक गैर-हेरोकू उपयोगकर्ता हैं जिन्होंने इसे पाया:
सामान्य PostgreSQL के साथ आप अपने सर्वर से PostgreSQL कनेक्शन का उपयोग करके अपने क्लाइंट को सर्वर एंड एंड से डिस्कनेक्ट कर सकते हैं। देखें कि यह कैसे कहता है कि "सुपरयूज़र कनेक्शन" के लिए एक स्लॉट आरक्षित है? एक सुपरयूज़र के रूप में Pg से कनेक्ट करें (postgres
डिफ़ॉल्ट रूप से उपयोगकर्ता) PgAdmin-III या psql
. का उपयोग करके ।
एक बार जब आप कनेक्ट हो जाते हैं तो आप अन्य क्लाइंट को इसके साथ देख सकते हैं:
SELECT * FROM pg_stat_activity;
यदि आप अपने कनेक्शन को छोड़कर हर कनेक्शन को समाप्त करना चाहते हैं तो आप चला सकते हैं:
SELECT procpid, pg_terminate_backend(procpid)
FROM pg_stat_activity WHERE procpid <> pg_backend_pid();
जोड़ें AND datname = current_database
और/या AND usename = <target-user-name>
उपयुक्त के रूप में।