<div dir="ltr">Hi,<br><br>According to http://www.rabbitmq.com/reliability.html,<br>"Connection Failures<br>In the event of a connection failure, the client will need to establish a new connection to the broker. Any channels opened on the previous connection will have been automatically closed and these will need re-opening too." <br><br>I manage to establish a new connection to the broker, however, if the IP of the new connection is different from previous connection (for example, via different networks such as 3G and Wifi network or via different router) the previous connection will not be closed until the heartbeat timeout (default is 600s). <br><br>Consumers<br>Channel Consumer tag Ack required Exclusive<br>210.19.225.88:36920 (1) amq.ctag-ma8QOXnZ_UAK-R7wddQGXA ● ○<br>210.19.225.3:60659 (1) amq.ctag-igoa2WysTs79WAk969UFJg ● ○<br><br>Due to that the new connection or channel created is not able to receive
all of the messages delivered to the queue. The new connection only
receives alternate message until previous connection is closed.<br>For example, M1, M2, M3, M4 published to the queue, new connection only receives M2, M4 within the 600s; after the previous connection is closed the new connection will get M1 and M3. <br><br>If the IP is the same, the previous connection does get closed immediately. New connection will get M1, M2, M3, and M4.<br><br>I am jusing rabbitmq-java client. is this a bug? <br><br>What can I do to ensure that I can receive all of the messages immediately even in the scenario in which IP is different? <br><br>Regards,<br>--Wong Liong Hung<br></div>