[rabbitmq-discuss] Undelivered messages at Ready queue.
Rohit.Patel2 at techmahindra.com
Tue Oct 1 06:29:25 BST 2013
Thanks for your reply.
Here I am sharing some more Info so that we are on the same page, I am using rabbitmq-c-master for communication along with RabbitMQ 3.1.5, Erlang R16B01. My client machine is on Dynamic DHCP.
> You may be declaring queues as exclusive, then they will be removed when the connection that declared them closes (possibly due to a network partition, not application action).
Or you may be declaring them as auto-delete, in which case they are removed when the last consumer is cancelled.
Finally, queues can have fixed life time.
My queues are not exclusive but they are auto-delete. However I am not closing my consumer still the queue is removed by the RabbitMQ server.
> My app is an app which supposed to be run 24x7x356. same for server as well. How to establish reliable connection between server and client so that there should not be any communication break ? Please suggest.
One way is to detect failures you can recover from (e.g. network failures), reconnect and recover (redeclare, rebind) your topology. This varies from client to client, e.g. Ruby and Clojure clients support automatic recovery while Java client requires developers to explicitly inspect shutdown reason.
Any way for rabbitmq-c-master to achieve reconnect and recover?
If you connect to RabbitMQ over WAN, you may want to run a local node and connect it to the remote WAN one with Shovel  and use the local node. Shovel will recover from network failures gracefully and connection loss with a LAN-local machine is less likely.
Thank you for your suggestion. Let me explore more on Shovel  and come back to you on it.
> 2. My message from client is not getting delivered to the server and they reside at Server queues(ready state). If I try sending message again from client, my server listener is not able to receive any more client messages as the client published messages are getting accumulated in server ready queue.
The first screenshot indicates that there are delivered messages but they are not acknowledged. The second one only has queues with messages ready. Are the two states related two each other?
Please refer queue r_0_4, which is Durable queue and one message is in ready queue but not getting deliver to the server even though the respective listener is ready to listen, what would be the reason?
Please also refer the second screen-shot attached here with having queues name as r_0_3 and r_0_4 with which the message there in queues only but not getting deliver to the respective listener. I checked the listener as you suggested it I waiting at amqp_simple_wait_frame_noblock for Message. Please suggest.
Did you check that the queues with messages have consumers? If you use basic.get instead of basic.consume, then it sounds like a consumer application issue.
>>> Yes the respective consumer is waiting at server side in my design, the api's I am using is as:
amqp_basic_consume(CTMServerInstParam->CL_Master_Connect.conn, CTMServerInstParam->CL_Config_Connect.listner_channel, CTMServerInstParam->CL_Config_Connect.queuename, AMQP_EMPTY_BYTES, 0, 1, 0, AMQP_EMPTY_TABLE); for consume
"result = amqp_simple_wait_frame_noblock(conn, &frame, &t.tv_sec); for waiting for to listen" Please suggest.
This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss