Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सर्वर पर परिनियोजन के कुछ समय बाद डेटाबेस से कनेक्ट करने में सक्षम नहीं

अपने कॉन्फ़िगरेशन गुणों में आपने c3p0 गुण maxIdleTime का उपयोग किया है, लेकिन c3p0 गुण c3p0. का उपयोग करके कॉन्फ़िगर किए गए हैं। उपसर्ग या hibernate.c3p0. . ध्यान दें कि किसी भी c3p0 . को सक्षम करना properties स्वचालित रूप से संबंधित कनेक्शन प्रदाता को हाइबरनेट ह्युरिस्टिक्स द्वारा सक्षम करता है। लॉग में यह नहीं देखा जाता है कि आप c3p0 का उपयोग कर रहे हैं। यदि आप कॉन्फ़िगर किए गए डेटा स्रोत नहीं हैं तो हाइबरनेट hibernate.connection.provider_class org.hibernate.connection.DriverManagerConnectionProvider का उपयोग करेगा . इस कनेक्शन प्रदाता के पास इन-बिल्ट अल्पविकसित कनेक्शन पूल है जिसके लिए आप एक hibernate.connection.pool_size सेट कर सकते हैं। , लेकिन इसका उपयोग केवल विकास उद्देश्यों के लिए किया जाता है। इसे उत्पादन वातावरण में कभी भी उपयोग न करें।

कैसे ठीक करें java.net.SocketException:ब्रोकन पाइप विषय पर आपकी अंतहीन चर्चा हो सकती है। . कुछ समय बाद आपको एहसास होगा कि आप खुले रह गए हैं पूल में कनेक्शन, जो निम्नलिखित कारणों से अचानक दूसरी तरफ बंद हो जाते हैं:

  • फ़ायरवॉल या राउटर निष्क्रिय कनेक्शन पर बंद हो सकते हैं (MySQL क्लाइंट/सर्वर प्रोटोकॉल नोट नहीं करता है)।
  • MySQL सर्वर निष्क्रिय कनेक्शनों को बंद कर सकता है जो wait_timeout . से अधिक हैं याinteractive_timeout सीमा।

इन समस्याओं के निवारण में सहायता के लिए, निम्नलिखित युक्तियों का उपयोग किया जा सकता है:

  • JDBC ड्राइवर के हाल के (5.1.13+) संस्करण का उपयोग किया गया है।
  • सुनिश्चित करें कि wait_timeout और interactive_timeout पर्याप्त ऊँचाई पर स्थापित हैं। जांचें कि क्या interactiveClient प्रयोग किया जाता है।
  • सुनिश्चित करें कि tcpKeepalive सक्षम है।
  • सुनिश्चित करें कि कोई भी कॉन्फ़िगर करने योग्य फ़ायरवॉल या राउटर टाइमआउट सेटिंग्स अधिकतम अपेक्षित कनेक्शन निष्क्रिय समय के लिए अनुमति देती हैं।
  • सुनिश्चित करें कि कनेक्शन पूल से उपयोग किए जाने पर कनेक्शन मान्य हैं। /* ping */ . से शुरू होने वाली क्वेरी का इस्तेमाल करें पूर्ण क्वेरी के बजाय हल्के पिंग निष्पादित करने के लिए। ध्यान दें, पिंग का सिंटैक्स बिल्कुल वैसा ही होना चाहिए जैसा यहां बताया गया है।
  • यदि कनेक्शन को लंबे समय तक निष्क्रिय छोड़ दिया गया है, तो इसका उपयोग करने से पहले कनेक्शन को स्पष्ट रूप से सत्यापित करें।
  • एक कनेक्शन ऑब्जेक्ट के निष्क्रिय रहने की अवधि कम से कम करें जबकि अन्य एप्लिकेशन लॉजिक निष्पादित किया जाता है।

इनमें से कुछ विकल्पों का अनुपालन करने के लिए आप एक कनेक्शन पूल का बेहतर उपयोग करेंगे जिसे आप हाइबरनेट के साथ उपयोग कर सकते हैं। हाइबरनेट में कॉमन्स-डीबीसीपी, सी3पी0, और प्रॉक्सूल के लिए समर्थन है। इसके अलावा आप वेब सर्वर पर जेएनडीआई डेटा स्रोत को हाइबरनेट के साथ उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं, इसमें एक कनेक्शन पूल है। देखें अध्याय 7 कनेक्टर/जे के साथ कनेक्शन पूलिंग .

यदि आप हाइबरनेट को c3p0 के साथ कॉन्फ़िगर करना चाहते हैं, तो आपको यह C3P0 कनेक्शन पूल को कॉन्फ़िगर कैसे करें . डीबीसीपी उदाहरण विन्यास के लिए आपको इस पोस्ट की जांच करनी चाहिए MySQL, Hibernate and Broken Pipe Exception . आप जो भी कनेक्शन पूलिंग का उपयोग करेंगे वह आप पर निर्भर है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका बदलें विदेशी कुंजी जोड़ें विफल रहता है

  2. जावास्क्रिप्ट से डेटा को mysql डेटाबेस में भेजें

  3. mysql में एक साथ अद्वितीय कुंजी बदलें

  4. mysqldump केवल एक टेबल निर्यात करता है

  5. PHP में अन्य वर्गों में कक्षाओं का उचित उपयोग?