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

मैं Oracle डेटाबेस में आवर्ती स्वचालित कनेक्शन को कैसे रोक सकता हूँ?

अंतर्निहित समस्या अप्रकाशित डेटाबेस कनेक्शन होने के कारण समाप्त हुई। जब कोई कनेक्शन खोला जाता है, तो यह कनेक्शन पूल से चेक आउट हो जाता है। यदि कनेक्शन कभी बंद नहीं होता है, तो पूल को लगता है कि इसका उपयोग अभी भी किया जा रहा है। यह पूल प्रबंधन तर्क को मूल कनेक्शन स्ट्रिंग का उपयोग करके डेटाबेस के साथ समय-समय पर पुन:प्रमाणित करने का कारण बनता है। जब पासवर्ड बदलता है, तो यह जल्दी से विफल लॉगिन प्रयास और खाता लॉकिंग की ओर जाता है।

// Problem logic; connection is never closed/returned to the connection pool.
public static void ConnPoolTest1()
{
    OracleConnection conn = new OracleConnection(connectionStringWithPooling);
    conn.Open();

    //...Do some work

    // Sit on this line for 5-10 minutes and examine Oracle's dba_audit_trail.
    Console.ReadKey(); // Since connection was never released back to the connection pool, the
                       // data provider's pool management will regularly re-authenticate with DB.
                       // If user's password changes before this process dies (releasing the
                       // connection pools), you start accumulating failed password attempts.
}

इस समस्या का उचित समाधान यह सुनिश्चित करना है कि जब आपका काम पूरा हो जाए तो कनेक्शन हमेशा पूल में वापस आ जाएं!

// Best practice: ALWAYS CLOSE YOUR CONNECTIONS WHEN YOU ARE DONE!
public static void ConnPoolTest2()
{
    OracleConnection conn = new OracleConnection(connectionStringWithPooling);
    conn.Open();

    //...Do some work

    conn.Close();

    // Sit on this line for 5-10 minutes and examine Oracle's dba_audit_trail.
    Console.ReadKey(); // No problem here! No recurring authentication attempts because the
                       // connection has been returned to the pool.
}

नोट:अन्य उत्तरों ने पासवर्ड बदलने पर पूलिंग को बंद करने और पुराने कनेक्शन पूल को साफ़ करने का सुझाव दिया। इन सुझावों ने हमारे लिए एक अस्थायी पैच के रूप में काम किया, जब हमने अप्रकाशित संसाधनों की खोज की, और उन्होंने समस्या को अलग करने में हमारी बहुत मदद की।



  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. संग्रह प्रकार oracle 12c - ORA-00902 से तालिका में सम्मिलित करें:अमान्य डेटाटाइप

  3. Oracle 12c Ubuntu 17.04 स्थापना त्रुटि

  4. ओरेकल एपेक्स सूची का चयन करें और मूल्यों को छिपाएं

  5. प्राथमिक, अद्वितीय और विदेशी कुंजी बाधाओं और अनुक्रमित के बीच क्या अंतर है?