मैं Transaction Binding=Explicit Unbind
कनेक्शन स्ट्रिंग में here के रूप में उपयोग कर रहा हूं क्योंकि मैं टाइमआउट के साथ ट्रांज़ेक्शनस्कोप का भी उपयोग कर रहा हूं। समस्या यह है कि निपटान के बाद कनेक्शन बंद नहीं लगते हैं और अंत में कनेक्शन पूल में और कनेक्शन उपलब्ध नहीं हैं। जब मैंने कनेक्शन पूल में सभी उपलब्ध कनेक्शनों का उपयोग करने के लिए लूप में पर्याप्त बार ट्रांज़ेक्शनटाइमआउटआईस्यूडेमो (लिंक देखें) को संशोधित किया और लेनदेनस्कोपटेस्ट() (स्पष्ट अनबिंड कनेक्शन स्ट्रिंग के साथ) चलाया। पूल में कनेक्शन के लिए डिफ़ॉल्ट मान 100 है लेकिन उदाहरण के लिए सेटिंग Max Pool Size =10
का उपयोग करके इसे बदला जा सकता है। ऐसा लगता है कि एसक्यूएलकनेक्शन और ट्रांज़ेक्शनस्कोप दोनों को using
क्लॉज के साथ उपयोग किए जाने पर स्पष्ट अनबिंड का उपयोग करते समय कनेक्शन जारी नहीं किए जाएंगे। किसी को भी यह कैसे संभालना है?लेनदेन बाध्यकारी = स्पष्ट अनबिंड का उपयोग करते समय कनेक्शन बंद नहीं होंगे; कनेक्शन स्ट्रिंग
5
A
उत्तर
3
कनेक्शन केवल पूल में रहना प्रतीत होता है और उदाहरण के समान, अपवाद मिलने पर पुन: उपयोग नहीं किया जाता है। यदि आप टाइमआउट बढ़ाते हैं तो कनेक्शन का पुन: उपयोग किया जाएगा।
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
try
{
Console.WriteLine("Server is {0}", con.ServerVersion);
Console.WriteLine("Clr is {0}", Environment.Version);
for (int i = 0; i < 5; i++)
{
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = "insert into TXTEST values (" + i + ")";
cmd.ExecuteNonQuery();
}
Console.WriteLine("Row inserted");
}
Thread.Sleep(TimeSpan.FromSeconds(1));
}
catch
{
SqlConnection.ClearPool(con);
throw;
}
}
ज्यादातर मामलों में लेन-देन टाइमआउट के भीतर पूरे हो और सब कुछ ठीक है और बांका होगा:
इस समस्या का एक समाधान का आप इस तरह एक अपवाद मिल मामले में कनेक्शन पूल खाली करने के लिए है। जब लेनदेन वास्तव में टाइमआउट करता है तो आप गंदे कनेक्शन को साफ करने के लिए पूल को साफ़ करते हैं जिसे पुन: उपयोग नहीं किया जाएगा। यह निश्चित रूप से पूल में अन्य कनेक्शन को प्रभावित करेगा जो इस समस्या से प्रभावित नहीं हैं।
यह एक बदसूरत कामकाज है लेकिन ऐसा लगता है कि यह काम करता है।
0
इसके लायक होने के लिए, यह समस्या .NET 4.0 में तय की गई थी।
संबंधित मुद्दे
- 1. ActiveRecord कनेक्शन चेतावनी। (डेटाबेस कनेक्शन स्वचालित रूप से बंद नहीं होंगे)
- 2. नेटटी + जेएमटर, कनेक्शन का उपयोग करते समय त्रुटियां
- 3. क्या SQL कनेक्शन है? कनेक्शन बंद करें?
- 4. कनेक्शन स्ट्रिंग
- 5. file_get_contents - कनेक्शन का समय
- 6. क्रोम: WebSocket कनेक्शन बंद कर दिया नहीं ब्राउज़र बंद
- 7. कनेक्शन स्ट्रिंग
- 8. अंतर्निहित कनेक्शन बंद था:
- 9. कनेक्शन का निपटान करें या कनेक्शन बंद करें
- 10. एसक्यूएल कीमिया कनेक्शन समय
- 11. एनआईओ - एक बंद कनेक्शन का पता लगाना
- 12. डेल्फी XE2 डेटा स्नैप - 'कनेक्शन बंद हो गया है' HTTPS पर रीस्ट का उपयोग करते समय
- 13. एक लेनदेन के अंदर डेटाबेस कनेक्शन खोलना और बंद करना
- 14. क्लाउड पर तैनाती करते समय कनेक्शन के भीतर कनेक्शन स्ट्रिंग सुरक्षित है?
- 15. यूडीपी, नेट और सेट करते समय "कनेक्शन"
- 16. कनेक्शन नाम 'लोकल एसक्लसेवर' कनेक्शन कॉन्फ़िगरेशन में नहीं मिला था या कनेक्शन स्ट्रिंग खाली है
- 17. PHP + gzip: बंद कनेक्शन और
- 18. कनेक्शन LIFetime = 0 MySQL कनेक्शन स्ट्रिंग
- 19. MySQLdb प्रति कनेक्शन एकाधिक लेनदेन के साथ
- 20. मल्टीथ्रेडिंग इकाई फ्रेमवर्क: कनेक्शन बंद नहीं था। कनेक्शन का वर्तमान स्थिति
- 21. स्रोत नियंत्रण का उपयोग करते समय कनेक्शन स्ट्रिंग, उपयोगकर्ता नाम, पीडब्ल्यू कैसे छिपाना है?
- 22. SqlServer.Management.SMO। लेनदेन शुरू करते समय सर्वर त्रुटि
- 23. सुरक्षा अनुप्रयोग ब्लॉक का उपयोग करते समय AzMan XML स्टोर से संबंधित कनेक्शन स्ट्रिंग
- 24. सिद्धांत 2 कनेक्शन बंद करें
- 25. एसक्यूएल कनेक्शन स्ट्रिंग
- 26. गतिशील कनेक्शन स्ट्रिंग
- 27. edmx कनेक्शन स्ट्रिंग
- 28. जेडीबीसी कनेक्शन बंद और तैयारस्टेटमेंट बंद
- 29. एन्क्रिप्टेड कनेक्शन स्ट्रिंग
- 30. एसक्यूएल कनेक्शन स्ट्रिंग समस्या