[rabbitmq-discuss] "None of the specified endpoints were reachable"

Tony Garnock-Jones tonyg at lshift.net
Tue Jul 21 15:38:26 BST 2009


Hi Tammo,

Tammo.Filusch at btc-ag.com wrote:
> None of the specified endpoints were reachable
> Endpoints attempted:
>   endpoint=amqp-0-8://localhost:5672, attempts=1, outcome=Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden 127.0.0.1:5672
> Stack trace:
>    bei RabbitMQ.Client.ConnectionFactory.CreateConnection(Int32 maxRedirects, AmqpTcpEndpoint[] endpoints)
>    bei RabbitMQ.Client.ConnectionFactory.CreateConnection(AmqpTcpEndpoint[] endpoints)
>    bei RabbitMQ.Client.ConnectionFactory.CreateConnection(String address)
>    bei ...SendDataViaTcp(dataRequest request) in ...\RmqServiceClient.cs:Line 46.

This error text is associated with error code 10048, WSAEADDRINUSE.

> looking at the "outcome" part of the error message, it seems as if
> the connection from the client to the broker is not closed properly
> and because of that all possible sockets are taken.

Exactly -- but it's not necessarily because the connection isn't closed
properly! (Though, of course, it could be -- please try your system's
equivalent of netstat after 1000 messages or so, and see if there are
around 1000 active connections lying around.) I suspect TCP's TIME_WAIT
state, where if many connections are rapidly opened and closed, the TCBs
are kept around for a while to let delayed segments drop out of the
network. After a while, these can build up, leading to client-side TCP
port exhaustion.

> the following code is executed for every single message. after about
> 3800 messages had been transfered and consumed successfully the above
> error message is thrown by the sending client while executing the
> first line:
> using (IConnection conn = new ConnectionFactory().CreateConnection(serverAddress))
>                 { [...] }

Over how long a period are these 3800 connections opened and closed? If
it's reasonably quickly -- a couple of minutes, say -- it could well be
TIME_WAIT causing the issue.

> are there any obvious mistakes in my pieces of code?

Well... if possible, open *one* connection, and reuse it! :-)

Regards,
  Tony
-- 
 [][][] Tony Garnock-Jones     | Mob: +44 (0)7905 974 211
   [][] LShift Ltd             | Tel: +44 (0)20 7729 7060
 []  [] http://www.lshift.net/ | Email: tonyg at lshift.net




More information about the rabbitmq-discuss mailing list