मैं बहुत MongoDB और NoSQL सामान्य रूप में करने के लिए नया हूँ और मैं सिर्फ MongoDB/नॉर्म/ASP.NET MVC के साथ एक साइट का निर्माण 3.मुझे मोंगोडीबी कनेक्शन कब खोलना और बंद करना चाहिए?
मैं सोच रहा हूँ कि कैसे मैं अपने मोंगो डेटाबेस के लिए कनेक्शन देखते हुए किया जाना चाहिए शुरू कर दिया है ।
अभी मेरे पास एक बेसकंट्रोलर है जो मोंगोशन और ऑनएक्शन पर सशक्त है, मैं इसे निपटान करता हूं इसलिए मेरे सभी व्युत्पन्न नियंत्रकों को मेरे मोंगोशन तक पहुंच होगी। MongoSession वर्ग अपने कन्स्ट्रक्टर में एक कनेक्शन खोलता है और इसे आज (जिस तरह से काम कर रहा है, निपटान() पर इसका निपटान करता है।
private IMongo _mongo;
public MongoSession()
{
_mongo = Mongo.Create("connString");
}
public void Dispose()
{
_mongo.Dispose();
}
मुझे थोड़ा चिंता है कि अगर मैं नियंत्रकों में अन्य सामान भी कर रहा हूं तो कनेक्शन बहुत लंबे समय तक खुला हो सकता है।
क्या यह दृष्टिकोण बहुत से कनेक्शन खोलने का जोखिम उठाने के लिए तैयार नहीं है या क्या मुझे नीचे उदाहरण विधि की तरह कुछ और करना चाहिए?
public void Add<T>(T item) where T : class, new()
{
using (var mongo = Mongo.Create("connString"))
{
mongo.GetCollection<T>().Insert(item);
}
}
एक और अनुवर्ती सवाल यह है:
खोलने और नॉर्म के माध्यम से MongoDB कनेक्शन बंद कर रहे हैं "महंगा" संचालन?
नॉर्म शायद ही अब और बनाए रखा जा रहा है, यदि आप LINQ समर्थन के शीर्ष पर FluentMongo के साथ आधिकारिक मोंगो ड्राइवर के साथ जाना चाहते हैं। –
कोड पर कनेक्शन खोलने और बंद करने के इस प्रश्न के अलावा, मुझे इंटरनेट प्रदाता क्लोजिंग कनेक्शन के साथ समस्याएं थीं, फिर मेरा कोड एंडऑफस्ट्रीम एक्सेप्शन था। मैंने इसे सेटिंग्स का उपयोग करके हल किया। मैक्सकोनक्शन IdleTime = TimeSpan.FromSeconds (30); https://stackoverflow.com/a/44606284/194717 – Tony