を解放することはできません削除、メッセージのいくつかの種類が以下のようにRabbitMQのキューを介して送信されている:RabbitMQのは、キューが私のJavaプログラムに接続
if(!con.isConnected()){
log.error("Not connected !!!");
return false;
}
con.getChannel().basicPublish("",queueName, MessageProperties.PERSISTENT_BASIC, bytes)
- 私はRabbitMQの管理GUIプラグイン
- を経由してキューを削除してみてくださいその削除されたキューを介してメッセージを送信する
結果:私はmessagを送信しようとしていますときキューはRabbitMQのGUIから削除されたが、削除された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);
}
});
送信メッセージ:のRabbitMQから
channel.basicPublish("testExchange", "testRoutingKey", null,messageBodyBytes);
私たちができるようにいくつかのコードを分けてください - 少なくともあなたを助けてください。 – tommus
コードブロックが状況を理解するのに役立つとは確信していませんが、とにかくそれを追加しました。 – melihcoskun
キューに接続しているコードを共有してください... – tommus