2012-06-06 2 views
1

나는 다음 코드Mongo Java가 잘못된 호스트/포트에 연결 중입니다. 정말 연결되어 있습니까?

public class MongoService { 

    private final Mongo mongo; 
    private static final Logger LOGGER = LoggerFactory.getLogger(MongoService.class); 

    public MongoService() throws UnknownHostException { 
     mongo = new Mongo("localhot", 2707); 
     DB db = mongo.getDB("contract"); 
     LOGGER.info(db.getCollection("Test").getName()); 
    } 

    public Mongo getMongoInstance() { 
     return mongo; 
    } 

    public void insert() { 
     LOGGER.info("will run mongo insert now"); 
    } 

    public void query() { 
     LOGGER.info("will run query now"); 
    } 

    public static void main(String args[]) throws UnknownHostException { 
     MongoService mongoService = new MongoService(); 
     mongoService.insert(); 
     mongoService.query(); 

    } 
} 

출력

15:26:07.509 [main] INFO c.s.s.business.persist.MongoService - Test 
15:26:07.514 [main] INFO c.s.s.business.persist.MongoService - will run mongo insert now 
15:26:07.514 [main] INFO c.s.s.business.persist.MongoService - will run query now 
  • 호스트가 (로컬 호스트한다)이 있고 포트 (27017이어야한다) 분명히 잘못이지만, 나는이 프로그램을 실행하면, 실행되고 예외가 발생하지 않음

  • 정말 연결 되나요? 그런 상황을 어떻게 처리 할 것인가?

+0

당신이 몽고 드라이버에 설정된 권리 로깅 수준을 가지고 있습니까? – ltfishie

+0

어떻게하면됩니까? – daydreamer

+0

log4j 설정에서 과 같은 것을 추가 할 수 있습니다. 거기에 오류 메시지가 나타나지 않으면 놀랄 것입니다. – ltfishie

답변

1

mongo.getDB ("contract")는 DB 객체를 만들고 mongo-java-driver 내부 캐시에 넣기 만하면됩니다.

AFAIK는 요청 (예 : 찾기, 삽입 등의 작업)이 데이터베이스로 전송 될 때만 풀에서 연결을 가져옵니다.

시도는 findOne 조작을 실행하고 IOException가 발생한다 :

java.io.IOException: couldn't connect to [/127.0.0.1:2017] bc:java.net.ConnectException: Connection refused 
    at com.mongodb.DBPort._open(DBPort.java:228) 
    at com.mongodb.DBPort.go(DBPort.java:112) 
    at com.mongodb.DBPort.go(DBPort.java:93) 
    at com.mongodb.DBPort.findOne(DBPort.java:146) 
    at com.mongodb.DBPort.runCommand(DBPort.java:157) 
    at com.mongodb.DBTCPConnector.fetchMaxBsonObjectSize(DBTCPConnector.java:457) 
    at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:444) 
    at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:209) 
    at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:305) 
    at com.mongodb.DBCollection.findOne(DBCollection.java:647) 
    at com.mongodb.DBCollection.findOne(DBCollection.java:626) 
    at com.mongodb.DBCollection.findOne(DBCollection.java:615) 
+0

이게 내 이해이지만, 바로 내가 올바른 생각인지 확인하고 싶습니다!, 응답을위한 @ 베노이에요 – daydreamer

+0

실패/잘못된 연결을 찾을 수있는 다른 방법이 있습니까? –

+0

다음은 또 다른 답변입니다. http://stackoverflow.com/questions/6832517/how-to-check-from-a-driver-if-mongodb-server-is-running –

관련 문제