2011-02-18 2 views
2

mongo 서버와 통신하기 위해 mongo-java2.4jar를 사용하고 있습니다. 내 webapp에서는 mongo=new Mongo("serverIp","port")이 필요하며 처리가 완료되면 mongo.close()을 사용하여 mongo 연결을 닫습니다.mongo + java + 너무 많은 파일 열기

java.net.SocketException의 : 열려있는 파일이 너무 많습니다 나는 그것이 소켓을 폐쇄되지 않은 연결을 닫을 때 나는 생각

그러나 잠시 후 나는 다음과 같은 예외를 얻고있다

. 이 문제를 해결하는 데 도움을주십시오.

감사합니다.

+0

어떤 플랫폼 당신에있다? 이 소켓을 사용할 때 열려있는 소켓을 살펴 봐야합니다. 유닉스 시스템을 사용한다면 netstat을 사용하십시오. 얼마나 많은 연결이 열려 있는지 확인할 수 있습니다. – nojo

+0

리눅스에서 열려있는 소켓의 수는 Windows에서'netstat -p'로 볼 수 있습니다. –

답변

3

Mongo 클래스는 투명하게 연결 풀링을 수행하며 일반적으로 JVM 프로세스 당 하나의 인스턴스 만 있어야합니다. 좀 봐주세요 http://api.mongodb.org/java/2.5-pre-/com/mongodb/Mongo.html

이 클래스의 인스턴스를 많이 만들면 너무 많은 연결을 확보하여 릴리스 할 수 있다고 생각합니다. 전체 응용 프로그램을 시작할 때 응용 프로그램 시작시 싱글 톤을 만들어 응용 프로그램 컨텍스트에 배치하면됩니다. 앱이 종료 될 때만 닫기를 호출합니다.

건배,

스벤은

+0

링크가 깨졌습니다. ( –