1
我的應用程序在NodeJS 4.4.7上運行,並使用MongoDB驅動程序2.2.31(不是Mongoose)連接到Azure CosmosDB。這就是我如何連接到DB:MongoError:連接在Azure上超時CosmosDB
var connectionString = 'mongodb://USERNAME:[email protected]: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,和等等)。
一些背景資料:
- 沒辦法,錯誤(30+天),當我沒有地理複製設置。
- 最近從Azure門戶(美國西部作爲寫入區域,美國東部作爲讀取區域)設置了地理複製。
- 遇到「無主服務器可用」錯誤。
- 將我的mongodb驅動程序從2.0.49更新到2.2.31,錯誤消失,但立即開始出現「池已損壞」錯誤。
- 繼this workaround解決這個問題(即刪除
&replicaSet=globaldb
) - 後的零個問題3天,我就開始經歷了上述「連接超時」的錯誤。第一次報告的錯誤發生在8月16日晚上8點24分左右,最後一次錯誤報告發生在8月17日上午6點40分左右。
我不知道它是否是來自Azure的暫時性問題或有什麼問題在我連接到CosmosDB的方式。任何建議,將不勝感激!
感謝@alekseys,我想嘗試您的建議,但我很難在MongoDB NodeJS驅動程序中查找等效變量。你能幫我找到'maxConnectionIdleTime'和'heartbeatConnectTimeout'等價嗎? –
在NodeJS驅動程序中沒有嚴格的等價物。您可能想查看keepAlive選項以及http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect – alekseys
上列出的其他人的組合。謝謝。我正在使用'keepAlive','socketTimeoutMS'和'connectTimeoutMS',並將監視是否在週末發生同樣的錯誤。 –