2012-05-02 46 views
2

当我尝试连接到couchdb时,出现此错误。有人可以告诉我为什么会发生这种情况。我是否必须在调用couchdb的方法中将null分配给HttpClient和GetMethod?严重:CouchDBQuery错误。 java.net.SocketException:打开的文件过多

SEVERE: CouchDBQuery error 
java.net.SocketException: Too many open files 
    at java.net.Socket.createImpl(Socket.java:397) 
    at java.net.Socket.<init>(Socket.java:371) 
    at java.net.Socket.<init>(Socket.java:249) 
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80) 
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122) 
    at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707) 
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387) 
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) 
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) 
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) 

回答

2

异常意味着没有足够的文件句柄来打开机器上的套接字。如何在Linux和Windows上进行检查是here

对于HTTPClient,建议使用可用的连接管理器之一来确保关闭连接。

请参阅本指南的2.8节关于如何使用HTTPClient connection manager

相关问题