на моей Java программы, некоторые из типов сообщений, передаваемых по очереди RabbitMQ, как показано ниже:RabbitMQ удаления очереди не может освободить соединение
if(!con.isConnected()){
log.error("Not connected !!!");
return false;
}
con.getChannel().basicPublish("",queueName, MessageProperties.PERSISTENT_BASIC, bytes)
- Я удаленных очередей с помощью управления RabbitMQ GUI плагин
- пытаются отправить сообщение по этой удаленной очереди
Результат: очередей были удалены из RabbitMQ GUI, но когда я пытаюсь отправить Сообща e над этими удаленными очередями RabbitMQ, соединение все еще живое. (con.isConnected() == true) Мне нужно найти способ прослушивания очереди, если она удалена, я не должен отправлять какое-либо сообщение в удаленную очередь.
Примечание: после удаления очереди я не перезапускаю RabbitMQ.
создание канала:
channel = connection.createChannel();
channel.queueDeclare(prop.getQueueName(), true, false, false, null);
пример кода канала, очередь, обмен создание:
ConnectionFactory cf = new ConnectionFactory();
cf.setUsername("guest");
cf.setPassword("guest");
cf.setHost("localhost");
cf.setPort(5672);
cf.setAutomaticRecoveryEnabled(true);
cf.setConnectionTimeout(10000);
cf.setNetworkRecoveryInterval(10000);
cf.setTopologyRecoveryEnabled(true);
cf.setRequestedHeartbeat(5);
Connection connection = cf.newConnection();
channel = connection.createChannel();
channel.queueDeclare("test", true, false, false, null);
channel.exchangeDeclare("testExchange", "direct",true);
channel.queueBind("test", "testExchange", "testRoutingKey");
connection.addShutdownListener(new ShutdownListener() {
@Override
public void shutdownCompleted(ShutdownSignalException cause) {
System.out.println("test"+cause);
}
});
Отправка сообщения:
channel.basicPublish("testExchange", "testRoutingKey", null,messageBodyBytes);
Пожалуйста, поделитесь некоторым кодом, чтобы мы могли - по крайней мере - попытаться помочь вам. – tommus
Я не уверен, что блок кода поможет вам понять ситуацию, но в любом случае я добавил ее. – melihcoskun
Пожалуйста, поделитесь кодом, в котором вы подключаетесь к очереди ... – tommus