[rabbitmq-discuss] RabbitMQ actively refuses connections after connectity issues
alfonso.pantoja at gmail.com
Tue Aug 2 10:06:23 BST 2011
we are running RabbitMQ v. 2.2.0 on Ubuntu and yesterday we
experienced a problem in our production server after a connectivity
issue that caused the consumers couldn't access to Rabbit.
After the connectivity issue was solved the consumers couldn't connect
to Rabbit anymore (they are windows services).
Our RabbitMQ works with Ejabberd using a custom mod_rabbitmq.
In some consumers we saw the error
System.Net.Sockets.SocketException: An operation on a socket could not
be performed because the system lacked sufficient buffer space or
because a queue was full"
And after some time this error turned into
System.Net.Sockets.TcpClient.Connect(String hostname, Int32 port)
maxRedirects, IDictionary connectionAttempts, IDictionary
connectionErrors, AmqpTcpEndpoint& mostRecentKnownHosts,
AmqpTcpEndpoint endpoint)amqp-0-9://xx.xx.xxx.xxx:5672 -
System.Net.Sockets.SocketException: No connection could be made
because the target machine actively refused it
I've been doing a research about this problem and found that some
services are using BasicGet for getting the messages continously. In
this group I've found a reference to a issue with BasicGet which
caused the consumer to hang after a certain number of messages.
Maybe BasicGet is using too connections (and also those services are
using Qos=1) but the most strange thing is the error where Rabbit
refuses the connections.
Is there any limitation on RabbitMQ or a security system for avoiding
continous short living connections (as far as
I know BasicGet opens and closes channel connections)?
By the way the rabbit connections is constructed with a heartbeat=3.
Moreover when the problem arised we tried to connect other consumers
using another Windows machine and Rabbit still refused the
connections. The problem couldn't be solved immediatly
and a couple of Rabbit restarts were needed. They also tried to
replace the rabbit with another rabbit server (they use pacemaker).
Finally the problem gone (magically?) and the consumers worked again.
More information about the rabbitmq-discuss