2012-05-02 19 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

相關問題