errorType=QUEUE_EXISTS message=AMQ229019: Queue hornetq already exists on address router
try {
ActiveMQServer server = new ActiveMQServerImpl(new ConfigurationImpl()
.setPersistenceEnabled(true)
.setBindingsDirectory("./router/data/bindings")
.setLargeMessagesDirectory("./router/data/large")
.setPagingDirectory("./router/data/paging")
.setJournalDirectory("./router/data/journal")
.setSecurityEnabled(false)
.addAcceptorConfiguration("tcp", "tcp://0.0.0.0:61617?protocols=CORE,AMQP"));
server.start();
} catch (Exception ex) {
System.err.println(ex);
}
ServerLocator serverLocator = ActiveMQClient.createServerLocator("tcp://127.0.0.1.3:61617");
ClientSessionFactory factory = serverLocator.createSessionFactory();
ClientSession session = factory.createSession();
session.createQueue(new QueueConfiguration("router::hornetq")
.setAutoCreateAddress(Boolean.FALSE)
.setAutoCreated(Boolean.FALSE)
.setRoutingType(RoutingType.ANYCAST));
ClientProducer producer = session.createProducer("router::hornetq");
ClientMessage message = session.createMessage(true);
message.getBodyBuffer().writeString("Core Queue Message");
producer.send(message);
session.start();
ClientConsumer consumer = session.createConsumer("router::hornetq");
ClientMessage msgReceived = consumer.receive();
System.out.println("message = " + msgReceived.getBodyBuffer().readString());
session.close();
您的客户机正在使用核心API,这是一个不支持自动创建队列的低级API。您的客户端正在手动创建(或试图创建)队列,例如:
session.createQueue(new QueueConfiguration("router::hornetq")
.setAutoCreateAddress(Boolean.FALSE)
.setAutoCreated(Boolean.FALSE)
.setRoutingType(RoutingType.ANYCAST));
如果队列已经存在,您看到的异常无疑是在这里抛出的。创建队列不是幂等的,所以我可以看到以下三个选项:
ActiveMQQueueExistsException
并忽略它。clientsession.queuequery
查看该队列是否存在。如果它存在,那么不要试图再次创建它。如果它不存在,那么创建它。也就是说,如果您有许多像这样的客户端同时运行,由于客户端之间的竞争条件,您仍然有可能获得ActiveMQQueueExistsException
。问题内容: 这听起来像是一个非常笼统的问题,但这是正确的。 我有一个要求,以创建我的应用程序配置脚本,将生成的这种配置的结果(基本,,)。我的问题是,我应该从哪里开始构建?有没有我可以效仿的例子? 问题答案: 要创建标准的“配置”脚本,您需要GNU autoconf。您可能还需要GNU automake和libtool。 有大量的文档和指导。谷歌搜索“ autoconf automake howt
在此代码中:
我们目前正在使用nservicebus从azure servicebus队列读取消息。 我可以通过代码创建所需的队列,但有人知道我是否可以设置配置文件,在azure上自动创建错误和输入队列吗?
问题内容: 问题: 更新: 从Java SE 6 API: public JComboBox() 创建带有默认数据模型的JComboBox。默认数据模型是对象的空列表。使用addItem添加项目。 默认情况下,数据模型中的第一项变为选中状态。 因此,我将API更改为JComboBox(model): public JComboBox(ComboBoxModel aModel) 创建一个JCombo
elasticsearch版本:elasticsearch-2.2.0。rpm logstash版本:logstash-2.2.2-1。诺奇。转速 我启动elasticsearch,然后使用具有基本标准输入/标准输出的 /etc/logstash/conf.d/logstash.conf进行logstash,但没有创建elasticsearch索引。如果我将以下内容添加到我的logstash输出配
问题内容: 我正在尝试使用Spring Reactor 3组件和Spring Integration从JMS队列创建反应式流(Flux)。 我正在尝试从JMS队列(使用Spring Integration的ActiveMQ)创建客户端的响应流(Spring Reactor 3 Flux),以使客户端异步获取JMS消息。我相信我已经正确连接了所有东西,但是在服务器停止之前,客户端不会收到任何JMS消