ReplicaSet への単一の呼び出し接続呼び出しを行う単純な node.js アプリケーションがあります。今日の初めは実際に問題なく動作していましたが、アプリケーションで何も変更されていませんでした。現在、接続が (静かに) 失敗しており、mongod ログに次のように表示されています。
Thu Apr 18 17:16:56 [conn1782026] end connection 10.x.x.x:50720 (40 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50721 #1782027 (41 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50722 #1782028 (42 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50723 #1782029 (43 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50724 #1782030 (44 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50725 #1782031 (45 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50736 #1782032 (46 connections now open)
[conn1782028] SocketException handling request, closing client connection: 9001 socket exception [2] server [10.x.x.x:50722]
これの原因や修正方法を突き止めることができませんでした。
これが私の接続コードです:
var _ = require("underscore");
var db_options = {
db:{
w:1,
native_parser: false
},
server:{
auto_reconnect:true,
socketOptions: {}
},
replSet:{
rs_name: "my_replset_name",
readPreference: "secondary"
},
mongos: {}
};
db.client.connect("mongodb://server1:27017,server2:27017,server3:27017/my_database", db_options, function(err, _db){
if(err){
console.log(err);
}else{
_db.collection("my_collection", function(err, collection){
collection.find({q:1}).toArray(function(err,item){
if(err){
console.log(err);
}else{
_.each(item, function(r){
if(!_.isEmpty(r)){
// do something with this item!
console.log(r._id);
}
});
console.log("Finished.");
}
});
});
}
});
私は EC2 で自分の ReplicaSet を実行していますが、すべてが相互に正常に接続できます。ReplicaSet への単一の呼び出し接続呼び出しを行う単純な node.js アプリケーションがあります。
誰かがこれについて何か洞察を持っていますか? 何が原因ですか?それを防ぐ方法は?修正方法は?