场景:rabbitMQ生产者发布消息。
代码【java】:
channel.basicPublish("exchangeTest111", "testQueue1", null, "hahaha".getBytes());
产生异常:
com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed channel
at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:190)
at com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:291)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:634)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:617)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:608)
at rabbitMQ.Sender.main(Sender.java:52)
异常原因:channel被关闭。因为向一个不存在的exchange发消息。
其他可能产生channel被关闭的原因请参考:http://stackoverflow.com/questions/8839094/why-do-my-rabbitmq-channels-keep-closing