मैं ODP.NET संस्करण 2.111.6.20 उपयोग करते हुए मेरे .NET अनुप्रयोग के लिए पूलिंग कनेक्शन कॉन्फ़िगर करने की कोशिश कर रहा हूँ। डेटाबेस ओरेकल 11.1 है।ODP.NET पूलिंग कनेक्शन पैरामीटर
मैं अपने .NET 2.0 आवेदन में निम्नलिखित कनेक्शन स्ट्रिंग का उपयोग कर रहा:
Data Source=prod; User Id=FAKE_USER; Password=FAKE_PASS; Pooling=true; Min Pool Size=2; Max Pool Size=5; Connection Timeout=30;"
प्रलेखन कनेक्शन पूल और 2 कनेक्शन के साथ प्रारंभ करें और आवश्यकतानुसार 5 कनेक्शन करने के लिए बढ़ाने के चाहिए के अनुसार। इसे 5 कनेक्शन से अधिक नहीं होना चाहिए।
क्या मैं देख रहा हूँ कनेक्शन एक बार में 2 बढ़ रहे हैं और 10 कनेक्शन के लिए बड़ा हो रहा है। मैं वी $ सत्र तालिका से पूछताछ करके ओरेकल डेटाबेस में कनेक्शन की निगरानी कर रहा हूं, इसलिए मुझे पता है कि कनेक्शन मेरे आवेदन से उत्पन्न उस विशिष्ट एप्लिकेशन से हैं।
किसी को भी मुझे पहचान क्या कनेक्शन पूल इस आवेदन कि मैं यह जानना चाहेंगे कनेक्शन की अधिकतम संख्या से अधिक के लिए अनुमति देता है हो सकता है अंदर में क्या हो रहा हो सकता है की मदद कर सकते हैं।
नमूना सी # कोड
यहाँ डेटाबेस के लिए कॉल करने के कोड का एक नमूना है:
const string connectionString = "Data Source=prod; User Id=FAKE_USER; Password=FAKE_PASS; Pooling=true; Min Pool Size=5; Max Pool Size=5; Connection Timeout=30;";
using (OracleConnection connection = new OracleConnection(connectionString)) {
connection.Open();
using (OracleCommand command = new OracleCommand("ALTER SESSION SET TIME_ZONE='UTC'", connection)) {
command.ExecuteScalar();
}
using (OracleTransaction transaction = connection.BeginTransaction()) {
const string procSql = @"BEGIN P_SERVICES.UPDATE_VERSION(:id, :version, :installDate); END;";
using (OracleCommand command = new OracleCommand(procSql, connection)) {
command.Parameters.Add(new OracleParameter("id", OracleDbType.Varchar2) { Value = id });
command.Parameters.Add(new OracleParameter("version", OracleDbType.Varchar2) { Value = version });
command.Parameters.Add(new OracleParameter("installDate", OracleDbType.TimeStamp) { Value = dateUpdated });
try {
command.ExecuteNonQuery();
} catch (OracleException oe) {
if (Log.IsErrorEnabled) {
Log.ErrorFormat("Update Error: {0}", oe.Message);
}
throw;
}
transaction.Commit();
}
}
}
आप आप अपने आदेश कैसे क्रियान्वित कर रहे हैं का एक उदाहरण पोस्ट कर सकते हैं? यह देखना अच्छा होगा कि क्या आप "उपयोग" का उपयोग कर रहे हैं या यदि आप मैन्युअल रूप से अपने कनेक्शन/आदेशों का निर्माण/निपटान कर रहे हैं –
कोड नमूना के लिए मूल पोस्ट में अपडेट देखें ... जैसा कि आप देख सकते हैं कि मैंने कथन का उपयोग किया है कोड के बजाय मैन्युअल रूप से एक कनेक्शन – jprincipe
मेरे Oracle.DataAccess विधानसभा 4.112.3.0 है निपटाने को बंद करने, कि आप के संस्करण 2.111.6.20 है एक ही विधानसभा है? यदि ऐसा है, तो शायद यह अपडेट करने का समय हो सकता है। जब तक आप एक पूर्व .NET 4 संस्करण तक सीमित नहीं हैं, और नहीं कर सकते हैं? –