On 2 November 2012 19:58, Mark Greene <[email protected]> wrote:
> I'm running into an issue where after making about 20k requests to a single
> host (200 concurrently) I start seeing these exceptions'
>
>   java.net.BindException: Address already in use
>>
>> at sun.nio.ch.Net.connect(Native Method)
>>
>> at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:532)
>>
>> at
>> org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processSessionRequests(DefaultConnectingIOReactor.java:275)
>>
>> at
>> org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:140)
>>
>> at
>> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:374)
>>
>> at
>> org.apache.http.impl.nio.conn.PoolingClientAsyncConnectionManager.execute(PoolingClientAsyncConnectionManager.java:108)
>>
>> at
>> org.apache.http.impl.nio.client.AbstractHttpAsyncClient.doExecute(AbstractHttpAsyncClient.java:464)
>>
>> at
>> org.apache.http.impl.nio.client.AbstractHttpAsyncClient.access$000(AbstractHttpAsyncClient.java:101)
>>
>> at
>> org.apache.http.impl.nio.client.AbstractHttpAsyncClient$1.run(AbstractHttpAsyncClient.java:485)
>>
>
> Is this a form of back pressure? What can I do to avoid these types of
> errors?

The message can be misleading - I've seen this on Windows JVMs when
the host runs out of sockets or file handles.

As TCP sockets need to be kept for a while (TIME_WAIT) after
disconnection (to pick up any stray incoming packets) the host will
need more sockets that the total number of current connections. When
the wait time expires, the socket will be released for further use.

The TIME_WAIT cannot be avoided (it's part of TCP), but you may be
able to configure more sockets, or re-use connections more
efficiently, or slow down the connnection rate to give more time for
the cleanup to occur.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to