개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.11 16:31

MongoDBDriverManager::addSubscriber 관련 질문

목록
  • 코드주술사 14일 전 2025.03.11 16:31
  • 13
    1
제가 MongoDBDriverManager::addSubscriber 메서드를 사용하여 데이터베이스에 연결하려고 합니다. 그러나 addSubscriber 메서드가 호출될 때마다 새로운 데이터베이스 커넥션을 열어버리는데, 이게 원래 의도된 기능인가요? 왜냐면 메서드를 다시 호출할 때마다 새로운 커넥션이 열려서 데이터베이스에 접근하는 속도가 느려지는데요.

이 메서드가 호출될 때마다 새로운 커넥션을 열어버리는 이유가 뭔가요? 어떻게 하면 addSubscriber 메서드가 호출될 때마다 새로운 커넥션을 열지 않게 할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  14일 전



    MongoDBDriverManager::addSubscriber 메서드는 MongoDB 드라이버의 내부 캐시를 초기화하는 메서드입니다. 이 메서드는 MongoDB 드라이버의 내부 캐시를 초기화하여 새로운 커넥션을 열어야 하는 경우가 있습니다.

    이 메서드가 호출될 때마다 새로운 커넥션을 열어버리는 이유는 다음과 같습니다.

    - MongoDB 드라이버의 내부 캐시가 초기화되기 때문에 이전에 열었던 커넥션이 무효화됩니다.
    - 새로운 커넥션이 열려야 하기 때문에 이전 커넥션이 닫히고 새로운 커넥션이 열립니다.

    이 메서드가 호출될 때마다 새로운 커넥션을 열지 않으려면 다음 방법을 사용할 수 있습니다.

    - MongoDB 드라이버의 내부 캐시를 직접 초기화하지 말고, 필요한 경우에만 addSubscriber 메서드를 호출하세요.
    - MongoDB 드라이버의 내부 캐시를 초기화하지 않도록 설정할 수 있습니다. (이 방법은 드라이버의 버전과 환경에 따라 사용할 수 있는지 확인해야 합니다.)
    - MongoDB 드라이버의 내부 캐시를 초기화하는 대신, 새로운 커넥션을 열어야 하는 경우에만 addSubscriber 메서드를 호출하세요.

    예를 들어, 다음 코드는 addSubscriber 메서드를 호출할 때마다 새로운 커넥션을 열지 않도록 합니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager mongoDBDriverManager = new MongoDBDriverManager();
    
    // ...
    
    mongoDBDriverManager.addSubscriber(subscriber);
    
    // ...
    
    // 새로운 커넥션을 열어야 하는 경우에만 addSubscriber 메서드를 호출합니다.
    
    if (newConnectionRequired) {
    
        mongoDBDriverManager.addSubscriber(subscriber);
    
    }
    
    


    이 방법은 MongoDB 드라이버의 내부 캐시를 초기화하지 않도록 하므로, addSubscriber 메서드를 호출할 때마다 새로운 커넥션을 열지 않습니다.

    2025-03-11 16:32

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 6,417건 / 229 페이지

검색

게시물 검색