आप नए सी # ड्राइवर 2.0 के साथ Ping
कमांड कैसे कहते हैं?
पुराने ड्राइवर में यह Server.Ping()
के माध्यम से उपलब्ध था? साथ ही, क्या यह पता लगाने का कोई तरीका है कि क्या सर्वर वास्तविक क्वेरी चलाने के बिना चल रहा है/प्रतिक्रिया दे रहा है?
mongoClient.Cluster.Description.State
का उपयोग करने से मदद नहीं मिलती है क्योंकि यह अभी भी मोंगो सर्वर ने जवाब देना शुरू करने के बाद भी डिस्कनेक्ट किया गया राज्य दिया है।MongoDB ड्राइवर 2.0 सी # क्या यह पता लगाने का कोई तरीका है कि सर्वर नीचे है या नहीं? नए ड्राइवर में हम पिंग कमांड कैसे चला सकते हैं?
उत्तर
आप अपने Description
संपत्ति का उपयोग कर क्लस्टर की स्थिति की जांच कर सकते हैं:
var state = _client.Cluster.Description.Servers.Single().State;
मैंने कोशिश की लेकिन सर्वर आने के बाद भी राज्य डिस्कनेक्ट के रूप में वापस आ रहा था। –
@ हेनापेटेल AFAIK यह अंतिम ऑपरेशन की स्थिति को दर्शाता है। वास्तव में कनेक्शन की जांच करने के लिए आपको एक सक्रिय ऑपरेशन करने की आवश्यकता है और देखें कि यह विफल रहता है या नहीं। – i3arnon
mongoClient.Cluster.Description.State विश्वसनीय नहीं है - सर्वर वापस आने के बाद भी देखा गया था कि हम राज्य को डिस्कनेक्ट कर रहे थे। मैं त्वरित कनेक्टिविटी परीक्षण की जांच करने और अपवादों को फेंकने के लिए पिंग का उपयोग करने की उम्मीद कर रहा था और रिकॉर्ड की संख्या के कारण प्रतिक्रिया को वापस करने में देरी की वजह से कनेक्टिविटी अपवाद बनाम कभी-कभी क्वेरी/कमांड टाइमआउट को अलग करने के लिए क्वेरी पर आगे नहीं बढ़ता था। –
यह मेरे लिए काम किया:
var state = _client.Cluster.Description.State
आपको लगता है कि क्लस्टर से बाहर एक विशिष्ट सर्वर चाहते हैं तो आप Servers
संपत्ति का उपयोग कर सकते दोनों सी # ड्राइवर 2 और 1
int count = 0;
var client = new MongoClient(connection);
// This while loop is to allow us to detect if we are connected to the MongoDB server
// if we are then we miss the execption but after 5 seconds and the connection has not
// been made we throw the execption.
while (client.Cluster.Description.State.ToString() == "Disconnected") {
Thread.Sleep(100);
if (count++ >= 50) {
throw new Exception("Unable to connect to the database. Please make sure that "
+ client.Settings.Server.Host + " is online");
}
}
@ i3arnon के उत्तर के रूप में मैं ca n बता कि इस तरह से मेरे लिए विश्वसनीय था:
var server = client.Cluster.Description.Servers.FirstOrDefault();
var serverState = ServerState.Disconnected;
if (server != null) serverState = server.State;
या नेट
var serverState = client.Cluster.Description.Servers.FirstOrDefault()?.State
?? ServerState.Disconnected;
के नए संस्करण में लेकिन आप इसे इस तरह से कर सकते हैं यदि आप वास्तव में एक पिंग कमांड चलाना चाहते हैं:
var command = new CommandDocument("ping", 1);
try
{
db.RunCommand<BsonDocument>(command);
}
catch (Exception ex)
{
// ping failed
}
- 1. MongoDB सी # 2.0 ड्राइवर एकाधिक unwinds
- 2. सर्वर इंस्टेंस अब कनेक्ट नहीं है। MongoDB सी # ड्राइवर 1.3.1
- 3. MongoDB सी # ड्राइवर 2.0 - अद्यतन दस्तावेज़
- 4. क्या यह पता लगाने का कोई तरीका है कि ए बी का सबमिट्रिक्स है या नहीं?
- 5. मोंगोडीबी सी # ड्राइवर 2.0
- 6. कैसे पता चलेगा कि MySQLnd सक्रिय ड्राइवर है या नहीं?
- 7. क्या यह पता लगाने का कोई तरीका है कि कोई ड्राइव एसएसडी है या नहीं?
- 8. यह पता लगाने का सबसे अच्छा तरीका क्या है कि प्रॉक्सी सर्वर उपलब्ध है या नहीं?
- 9. सी # ड्राइवर
- 10. जांचें कि क्या MongoDB PHP ड्राइवर स्थापित है
- 11. क्या यह जांचने का कोई तरीका है कि जावा में दो ऑब्जेक्ट्स अलियाकृत हैं या नहीं?
- 12. mongodb जावा ड्राइवर
- 13. यह पता लगाने का तेज़ तरीका है कि कोई उपयोगकर्ता सिस्टम पर मौजूद है या नहीं?
- 14. क्या यह पता लगाने का कोई तरीका है कि #pragma अप्रबंधित C++/CLI में प्रभावी है या नहीं?
- 15. MongoDB 10gen ड्राइवर
- 16. ब्राउज़र के माध्यम से MongoDB नहीं चला सकता - ऐसा लगता है कि देशी ड्राइवर बंदरगाह
- 17. क्या मोनोडीबी सी # चालक को एंडोफस्ट्रीम एक्सेप्शन फेंकने का कोई तरीका नहीं है जब प्राथमिक सर्वर नीचे चला जाता है?
- 18. क्या यह पता लगाना संभव है कि कोई ब्राउज़र टैब ऑडियो चला रहा है या नहीं?
- 19. क्या यह निर्धारित करने का कोई तरीका है कि दिनांक/समय मौजूद नहीं है या नहीं?
- 20. सी # के लिए सबसे परिपक्व MongoDB ड्राइवर क्या है?
- 21. जावा mongodb ड्राइवर आप अपवाद कैसे पकड़ते हैं?
- 22. ओपनग्ल एएस 2.0 ड्राइवर
- 23. find_one MongoDB रूबी ड्राइवर
- 24. MongoError: ड्राइवर इस सर्वर संस्करण
- 25. MongoDB-जावा ड्राइवर
- 26. क्या यह जांचने का कोई तरीका है कि निर्देशिका में इंगित प्रतीकात्मक लिंक हैं या नहीं?
- 27. यह पता लगाने का सबसे आसान तरीका है कि जावास्क्रिप्ट
- 28. यह पता लगाने का सबसे तेज़ तरीका है कि जावास्क्रिप्ट
- 29. क्या यह पता लगाने का कोई तरीका है कि एक जेटी पर एक बूंद होने वाली है या नहीं?
[2.0 चालक में MongoServer.State बराबर] (http://stackoverflow.com/questions/29459990/mongoserver-state-equivalent-in-the-2-0-driver) के संभावित डुप्लिकेट – i3arnon
क्यों करेंगे आप एक नियंत्रित कनेक्शन टाइमआउट के बजाय पिंग का उपयोग करते हैं? यदि आपके पास उच्च पिंग है, तो जब आप सर्वर से कनेक्ट करेंगे तो "डीबी से कनेक्ट करने के लिए कुल समय" दोगुना हो जाएगा (पिंग समय + वास्तविक कनेक्शन समय) –
mongoClient.Cluster.Description.State विश्वसनीय नहीं है - इसके बाद भी देखा गया सर्वर वापस था हम राज्य को डिस्कनेक्ट के रूप में प्राप्त कर रहे थे। मैं त्वरित कनेक्टिविटी परीक्षण की जांच करने और अपवाद फेंकने के लिए पिंग का उपयोग करने की उम्मीद कर रहा था और रिकॉर्ड की संख्या के कारण प्रतिक्रिया में देरी के कारण कभी-कभी पूछताछ अपवाद बनाम कनेक्टिविटी अपवादों को अलग-अलग क्वेरी/कमांड टाइमआउट के लिए क्वेरी पर आगे बढ़ने की उम्मीद नहीं कर रहा था। –