2

couchdb に接続しようとすると、このエラーが発生します。誰かがこれが起こっている理由を教えてもらえますか. couchdb を呼び出しているメソッドで HttpClient と GetMethod に null を割り当てる必要がありますか?

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)
4

1 に答える 1

2

例外は、マシンでソケットを開くのに十分なファイル ハンドルがないことを意味します。Linux および Windows でこれを確認する方法は、こちらです。

HTTPClient では、接続を確実にシャットダウンするために、利用可能な接続マネージャーのいずれかを使用することをお勧めします。

HTTPClient 接続マネージャーの使用方法については、このガイドのセクション 2.8 を参照してください。

于 2012-05-02T11:42:53.187 に答える