2016-01-14 3 views
2

Итак, у меня есть набор тестов огурцов, а в разделе BeforeFeatures я создаю соединения с 2 базами данных на одном сервере, я установил объединение в 2, чтобы я мог видеть, когда я подключаю 4 подключения (2 базы данных с 2 пулами).Соединения Mongodb, не закрывающиеся в тестах nodejs

Затем в конце я закрываю базы данных следующим образом:

var closeDatabase = function(callback) { 
    db1.close(function(){ 
     db2.close(function(){ 
      console.log("DONE"); 
      callback(); 
     }); 
    }); 
}; 

Теперь это вызывается, и я вижу выход консоли и процесс закрывается, так как соединения с базой данных должны быть закрыты. Однако если посмотреть на журналы MongoDB:

2016-01-14T11:45:05.813+0000 [initandlisten] MongoDB starting : pid=888 port=27017 dbpath=C:\Tools\mongodb\data 64-bit host=SomePC 
2016-01-14T11:45:05.818+0000 [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2 
2016-01-14T11:45:05.821+0000 [initandlisten] db version v2.6.7 
2016-01-14T11:45:05.822+0000 [initandlisten] git version: a7d57ad27c382de82e9cb93bf983a80fd9ac9899 
2016-01-14T11:45:05.826+0000 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49 
2016-01-14T11:45:05.829+0000 [initandlisten] allocator: system 
2016-01-14T11:45:05.830+0000 [initandlisten] options: { storage: { dbPath: "C:\Tools\mongodb\data" } } 
2016-01-14T11:45:05.846+0000 [initandlisten] journal dir=C:\Tools\mongodb\data\journal 
2016-01-14T11:45:05.848+0000 [initandlisten] recover : no journal files present, no recovery needed 
2016-01-14T11:45:05.871+0000 [initandlisten] waiting for connections on port 27017 
2016-01-14T11:45:11.639+0000 [initandlisten] connection accepted from 127.0.0.1:51841 #1 (1 connection now open) 
2016-01-14T11:45:11.646+0000 [conn1] end connection 127.0.0.1:51841 (0 connections now open) 
2016-01-14T11:45:11.650+0000 [initandlisten] connection accepted from 127.0.0.1:51842 #2 (1 connection now open) 
2016-01-14T11:45:11.653+0000 [initandlisten] connection accepted from 127.0.0.1:51843 #3 (2 connections now open) 
2016-01-14T11:45:11.659+0000 [initandlisten] connection accepted from 127.0.0.1:51844 #4 (3 connections now open) 
2016-01-14T11:45:11.662+0000 [conn4] end connection 127.0.0.1:51844 (2 connections now open) 
2016-01-14T11:45:11.665+0000 [initandlisten] connection accepted from 127.0.0.1:51845 #5 (3 connections now open) 
2016-01-14T11:45:11.669+0000 [initandlisten] connection accepted from 127.0.0.1:51846 #6 (4 connections now open) 
2016-01-14T11:45:11.689+0000 [conn5] end connection 127.0.0.1:51845 (3 connections now open) 
2016-01-14T11:45:11.689+0000 [conn6] end connection 127.0.0.1:51846 (3 connections now open) 
2016-01-14T11:45:11.690+0000 [conn2] end connection 127.0.0.1:51842 (3 connections now open) 
2016-01-14T11:45:11.690+0000 [conn3] end connection 127.0.0.1:51843 (3 connections now open) 

Так в конце, хотя 2 соединения закончились, кажется, оставить 3 из 4 соединений активных. Это говорит о том, что если мы посмотрим на порты, кажется, что он активирует 6 портов, хотя он имеет только 4 соединения.

Как это распространено? я должен беспокоиться, или я делаю что-то неправильно? Вся причина это вопрос, потому что, когда я пытаюсь использовать соединение, я получаю ошибку:

MongoError: server localhost:27017 sockets closed

Так что я немного озадачен, почему его, казалось бы, более-выделения и бомбардировок, когда я пытаюсь для использования соединений.

ответ

0

Таким образом, ошибка правильная, она закрывает соединения, а затем использует их, из-за того, что консольные выходы происходят в окнах, они не всегда на 100% в правильном порядке. Оказывается, огурец бесшумно бомбил в районе и оказывал здесь эффект.

Смежные вопросы