我的应用程序在NodeJS 4.4.7上运行,并使用MongoDB驱动程序2.2.31(而不是Mongoose)连接到Azure CosmosDB。这是我连接到DB的方式:
var connectionString = 'mongodb://USERNAME:PASSWORD@yyy.documents.azure.com:10255/DB_NAME?ssl=true'
var options = {
db: { j: false },
server: { autoReconnect: true, socketOptions: { connectTimeoutMS: 300000 } },
};
require('mongodb').MongoClient.connect(connectionString, options, callback);
我最近开始遇到以下错误:
MongoError: connection X to http://yyy.documents.azure.com:10255 timed out
其中X是一个小整数(我见过8,10,29等)。
一些背景信息:
&replicaSet=globaldb
)
我不确定它是否是Azure的临时问题,或者我连接到CosmosDB的方式有问题。任何建议将不胜感激!
答案 0 :(得分:1)
此问题可能与未正确设置客户端连接参数有关。您能否尝试设置这些并查看它是否解决了超时问题?
MongoClientOptions.Builder optionsBuilder = new MongoClientOptions.Builder();
optionsBuilder.socketTimeout(10000);
optionsBuilder.maxConnectionIdleTime(60000);
optionsBuilder.heartbeatConnectTimeout(5000);
MongoClientURI mongoClientURI = new MongoClientURI(props.getMongoDbConnection(), optionsBuilder);