मुझे सॉकेट त्रुटि 110 (कनेक्शन का समय समाप्त हो जाता है) जब एक मोंगो डेटाबेस (संस्करण 3.0.5) प्राथमिक डीबी सर्वर से गुलाम तक दोहराया जाता है, तो अधिक सटीक रूप से काम करने के समय उस डेटाबेस की प्रतिकृति (दास का लॉग नीचे है)। मुझे लगता है कि शायद इसका कारण यह है कि डेटाबेस बड़ा है और इसे प्रतिबद्ध करने के लिए ऑपरेशन भेजना बहुत अधिक समय लगता है।एक मोंगोडीबी सर्वर दास प्रतिकृति के लिए सॉकेट टाइमआउट निर्दिष्ट करने के लिए कैसे करें
मैं मॉन्गो सर्वर के लिए अलग सॉकेट टाइमआउट कैसे निर्दिष्ट कर सकता हूं? यदि यह संभव नहीं है, तो प्रतिकृति की मरम्मत के लिए कोई अन्य तरीका है?
मुझे केवल एक मोंगो क्लाइंट (कनेक्शन स्ट्रिंग विकल्प सॉकेटटाइमआउट्स) के लिए ऐसा विकल्प मिला लेकिन यह मोंगो सर्वर के साथ मदद नहीं करता है।
2016-04-26T13:36:34.693+0100 I INDEX [rsSync] done building bottom layer, going to commit
2016-04-26T13:36:34.693+0100 I INDEX [rsSync] build index done. scanned 30980334 total records. 4072 secs
2016-04-26T13:36:34.772+0100 I REPL [rsSync] initial sync cloning db: {skipped db name}
2016-04-26T13:36:34.823+0100 I NETWORK [rsSync] Socket say send() errno:110 Connection timed out {skipped ip}:27017
2016-04-26T13:36:34.828+0100 E REPL [rsSync] 9001 socket exception [SEND_ERROR] server [{skipped ip}:27017]
2016-04-26T13:36:34.828+0100 E REPL [rsSync] initial sync attempt failed, 9 attempts remaining
अद्यतन। मैं टिप्पणी में rs.status() के उत्पादन के लिए कहा गया था:
{ "set" : "<skippedsetname>",
"date" : ISODate("2016-05-04T15:35:06.717Z"),
"myState" : 5,
"syncingTo" : "<skipped domain name of other server>:27017",
"members" : [
{
"_id" : 0,
"name" : "<skipped domain name of this server>:27017",
"health" : 1,
"state" : 5,
"stateStr" : "STARTUP2",
"uptime" : 29,
"optime" : Timestamp(0, 0),
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"syncingTo" : "<skipped domain name of other server>:27017",
"configVersion" : 9,
"self" : true
},
{
"_id" : 2,
"name" : "10.0.1.7:27017",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 26,
"lastHeartbeat" : ISODate("2016-05-04T15:35:05.859Z"),
"lastHeartbeatRecv" : ISODate("2016-05-04T15:35:06.347Z"),
"pingMs" : 3,
"configVersion" : 9
},
{
"_id" : 3,
"name" : "<skipped domain name of other server>:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 26,
"optime" : Timestamp(1462376105, 196),
"optimeDate" : ISODate("2016-05-04T15:35:05Z"),
"lastHeartbeat" : ISODate("2016-05-04T15:35:05.859Z"),
"lastHeartbeatRecv" : ISODate("2016-05-04T15:35:06.086Z"),
"pingMs" : 4,
"electionTime" : Timestamp(1461688501, 1),
"electionDate" : ISODate("2016-04-26T16:35:01Z"),
"configVersion" : 9
}
],
"ok" : 1 }
अद्यतन। मुझे इस्तेमाल किया जाने वाला होस्टिंग का उल्लेख नहीं करना चाहिए Azure। Answer and explanation पूरी तरह से क्वेरी "azure mongodb कनेक्शन टाइमआउट" द्वारा googled है। मेरी गलती।
आप अपने अनुमान के आधार पर समाधान मांग रहे हैं "मुझे लगता है कि शायद इसका कारण यह है कि डेटाबेस बड़ा है और इसे करने के लिए ऑपरेशन भेजना बहुत अधिक समय लगता है।" मुझे लगता है कि यह सच नहीं है, और आप समस्या एक नेटवर्क मुद्दा है। क्या आप 'टेलनेट {छोड़े गए आईपी} 27017' कर सकते हैं? –
@ हेक्टरवाल्वरडेपेरेजा हां मैंने कोशिश की और उस आईपी और बंदरगाह पर टेलनेट कर सकते हैं। इसके अलावा, जैसा कि मैंने कहा था, उल्लिखित त्रुटि तब होती है जब प्रतिकृति उदाहरण डाटाबेस के सभी डेटा को लॉग में देखा जाता है। तो यह अजीब बात है कि यह डेटा डाउनलोड करने के लिए सॉकेट से कनेक्ट हो सकता है लेकिन उसके बाद उस ऑपरेशन को करने के लिए उसी पोर्ट से कनेक्ट नहीं हो सका। – boqapt
और 'rs.status()' का आउटपुट क्या है? –