[rabbitmq-discuss] Often failed to produce message due to TIMEOUT WAITING FOR ACK

Wong Kam Hoong wongkamhoong at gmail.com
Tue Sep 25 03:46:18 BST 2012


Hi RabbitMQ Team,

*My RabbitMQ*
Version : 2.8.6
Cluster Environment : Yes, All Nodes in Disk Mode
waitForConfirmsOrDie: Yes, 10000

Recently I found that my program often failed to produce messages to the
RabbitMQ server due to following exception:

*EXCEPTION LOG*
2012-09-24 11:53:19,665 WARN [INMSG-6] RabbitMQQueueSession - Failed to
produce message
{"creationDate":1348458796689,"lastModified":1348458796689,"queueMessage":{"id":44519977,"creationDate":1348458796688,"shortCode":28933,"serviceId":602,"lastModified":1348458796688,"operatorCode":13,"mcc":502,"msgId":"6e04.7dc9180b350b.00000195","class":"nplay.json.data.SnsInMessageValue","scheduledTime":1348458796688,"dataValue":{"message":"@ohhAzirahAzid:
start matrik aku suka duduk kat
library","creationDate":1348458796688,"shortCode":28933,"lastModified":1348458796688,"mcc":502,"operatorCode":13,"msisdn":60134406223,"class":"nplay.json.data.SmsOutMessageValue","scheduledTime":1348458796688}}}
: priority 4 to QUEUE_SMS_IN_4
com.rabbitmq.client.ShutdownSignalException: clean channel shutdown;
reason: #method<channel.close>(reply-code=406, reply-text=TIMEOUT WAITING
FOR ACK, class-id=0, method-id=0)
        at
com.rabbitmq.client.impl.ChannelN.waitForConfirms(ChannelN.java:182)
        at
com.rabbitmq.client.impl.ChannelN.waitForConfirmsOrDie(ChannelN.java:217)
        at
nplay.json.rabbitmq.client.RabbitMQQueueSession.produceTextMessage(RabbitMQQueueSession.java:124)
        at
nplay.common.mq.AQueueClient.produceTextMessage(AQueueClient.java:111)
        at
nplay.json.rabbitmq.client.QueueJsonRabbitMQClient.produceTextMessage(QueueJsonRabbitMQClient.java:289)
        at nplay.common.mq.AQueueClient.send(AQueueClient.java:185)
        at nplay.common.mq.AQueueClient.send(AQueueClient.java:275)
        at
nplay.endpoint.json.smpp.SnsInHandler.sendQueueMessage(SnsInHandler.java:21)
        at
nplay.endpoint.json.smpp.SnsInHandler.sendQueueMessage(SnsInHandler.java:11)
        at
nplay.endpoint.json.smpp.AIncomingMessageHandler.update(AIncomingMessageHandler.java:60)
        at nplay.endpoint.json.AJsonHandler.update(AJsonHandler.java:25)
        at java.util.Observable.notifyObservers(Observable.java:142)
        at
nplay.endpoint.common.ASpringEventSource.process(ASpringEventSource.java:202)
        at
nplay.endpoint.common.ASpringEventSource.run(ASpringEventSource.java:157)
        at java.lang.Thread.run(Thread.java:619)
        at
nplay.common.util.ThreadManager$ManagableThread.run(ThreadManager.java:52)
Caused by: com.rabbitmq.client.ShutdownSignalException: clean channel
shutdown; reason: #method<channel.close>(reply-code=406, reply-text=TIMEOUT
WAITING FOR ACK, class-id=0, method-id=0)
        at com.rabbitmq.client.impl.ChannelN.close(ChannelN.java:521)
        at com.rabbitmq.client.impl.ChannelN.close(ChannelN.java:480)
        at
com.rabbitmq.client.impl.ChannelN.waitForConfirmsOrDie(ChannelN.java:222)
        ... 14 more


Based on the log, the problem seems like related to "*NACKS Received*" and "
*ChannelN*" code throw the TimeoutException with reply-code *406 *
(PRECONDITION_FAILED).

I check all RabbitMQ servers are still working fine and I believe the time
I set for *waitForConfirmsOrDie *(10000) should be sufficient enough.


Can you advise me on the problem? How to solve it?


Thanks & Regards,
Wong
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120925/e9b68dba/attachment.htm>


More information about the rabbitmq-discuss mailing list