티스토리 뷰

반응형
Topology is closed

mongoDB를 사용 중에 위와 같은 에러를 발견했다. 관련된 해결 종류를 알아보도록 하자. 

 

Case 1. async - await를 확인하기

연결된 mongoDB의 데이터 처리를 기다리지 않고 로직이 끝나는 경우에 이러한 현상이 발생한다. 쉽게 말해서 request 요청이 와서, mongoDB로직이 처리가 끝나기 전에 응답을 주는 경우 ERROR가 발생한다. 즉, async await를 적었는지 확인을 해보자. 

 

 

Case 2.  client.close()를 확인하기

db_client = new MongoClient(url);
db_client.connect()
-로직-
db_clinet.close()

 

위의 코드는 mongoDB를 connect()로 연결하고, 연결된 db를 close()로 연결은 끊어주는 로직이다. 여기서 핵심은 close()로 db연결을 끊어 준 뒤에 db 조회하는 로직이 있는 경우에 Topology is closed라는 에러가 발생한다. 관련 부분 로직을 확인해보자.

 

 

Case 3. DB 연결 url과 collection 이름 확인

사실 위의 2가지 경우로 해결되지 않는다면, 사실상 기본적인 error일 가능성이 높다. 만약 배포를 한 이후에 발생한 Error라면, 백엔드 내부의 error log 메시지를 확인해보자. 이때, error log로 에러 확인이 된다면, 그 부분을 수정해주면 된다. 혹시나 관련 부분을 확인해도 error가 발생하지 않는다면, 추가적인 개방 포트 확인(아파치, 엔진엑스)도 필요하다. docker를 사용한다면, docker에서 실행한 port와 겹치는 부분이 없는지도 확인해 보자.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함