[rabbitmq-discuss] subscriber failed to detect closed connection
Mark Ward
ward.mark at gmail.com
Thu Aug 2 16:24:36 BST 2012
Hi Tim,
Thanks, I found the heartbeat property on the connection class.
connectionFactory.RequestedHeartbeat I didn't realize it was default off
(0) and will test with a value.
-Mark
Hi Mark,
You should try enabling AMQP heartbeats, as this should resolve the issue
of detecting the connection is being closed.
On Thursday, August 2, 2012 9:58:51 AM UTC-5, Mark Ward wrote:
>
> Hi,
>
> I am performing tests to a server across the internet. During the night
> our firewall is rebooted and it appears the basic consumer is not detecting
> this and does not throw any exceptions on the connection. When I arrive to
> the office each morning the subscriber client is still running and in the
> block state waiting for a message. If I send messages to the server the
> client will not receive messages unless I restart the client. The client
> works all day long as I push millions of messages through for testing. It
> is after the firewall reset that the client does not continue to work or
> fail out. This does appear to be a repeatable issue for the past two days
> it has performed this same issue. I am going to continue tonight to see if
> it repeats.
>
> Is there something I need to enable to have the client detect the
> connection closure? The testing I have manually performed on closing the
> network connection, shutting down the server, restarting the server have
> all caused the client to properly throw and exception that the connection
> was closed. It is only when the firewall resets that the client does not
> detect the failed connection.
>
> This is the .NET client connecting to the port 5672. It is not using SSL.
>
> below is the example code I am working with.
>
> var connectionFactory = new ConnectionFactory();
> connectionFactory.HostName = hostName;
> connectionFactory.Port = port;
>
> IConnection connection = connectionFactory.CreateConnection();
> IModel channel = connection.CreateModel();
>
> QueueingBasicConsumer consumer = new
> QueueingBasicConsumer(channel);
> String consumer_tag = channel.BasicConsume("QueueOne", false,
> consumer);
>
> Console.WriteLine("ctrl+c to exit");
> while (true)
> {
> BasicDeliverEventArgs evt_args =
> (BasicDeliverEventArgs)consumer.Queue.Dequeue();
> IBasicProperties msg_props = evt_args.BasicProperties;
> string message = Encoding.UTF8.GetString(evt_args.Body);
>
> channel.BasicAck(evt_args.DeliveryTag, false);
>
> Console.WriteLine("Message Body: " + message);
> }
>
> channel.Close();
> connection.Close();
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120802/ded1b46b/attachment.htm>
More information about the rabbitmq-discuss
mailing list