SpringアプリケーションでActiveMQを使用する際に問題があります。存在しないActiveMQ生成キュー
私は別のマシンにいくつかの環境を持っています。各マシンには、1つのActiveMQインスタンスがインストールされていました。今、私は、1つのサーバーに1つのActiveMQインスタンスをインストールすることができ、メッセージを送信するためにそのActiveMQを使用できるアプリケーションはほとんどないことに気付きました。だから、私はキューの名前を異なる環境("queue.search.sandbox"
、"queue.search.production"
、など)にするために変更する必要があります。
この変更後、ActiveMQは新しいキューを生成しますが、古いキューも生成しますが、そのような構成はありません。
私は、Javaではなく、Javaの設定でJava Springアプリケーションを使用しています。
まず、私は春のBeanとしてqueueTemplate
を作成します。私は適切にキューを作成した結果として、自分のアプリケーションを構築した後
@Bean
public DefaultMessageListenerContainer jmsAuditQueueListenerContainer() {
log.debug("ActiveMQConfiguration jmsAuditQueueListenerContainer");
DefaultMessageListenerContainer dmlc = new DefaultMessageListenerContainer();
dmlc.setConnectionFactory(connectionFactory);
String queueName = "queue.audit.".concat(env.getProperty("activeMqBroker.queueName.suffix"));
ActiveMQQueue activeMQ = new ActiveMQQueue(queueName);
dmlc.setDestination(activeMQ);
dmlc.setRecoveryInterval(30000);
dmlc.setSessionTransacted(true);
// To perform actual message processing
dmlc.setMessageListener(auditQueueListenerService);
dmlc.setConcurrentConsumers(10);
// ... more parameters that you might want to inject ...
return dmlc;
}
:
@Bean
public JmsTemplate jmsAuditQueueTemplate() {
log.debug("ActiveMQConfiguration jmsAuditQueueTemplate");
JmsTemplate jmsTemplate = new JmsTemplate();
String queueName = "queue.audit.".concat(env.getProperty("activeMqBroker.queueName.suffix"));
jmsTemplate.setDefaultDestination(new ActiveMQQueue(queueName));
jmsTemplate.setConnectionFactory(connectionFactory());
return jmsTemplate;
}
第二に、私は、ActiveMQのListener
構成を作成します接尾辞("queue.audit.sandbox"
)ですが、ActiveMQが生成して古いバージョン("queue.audit"
)を送信したあと、
誰かがActiveMQでこれをやっていることを知っていますか?前もって感謝します。
はキュー 'queue.audit'に加入されているソフトウェアの他の作品はありますか? – Orin
いいえ、ありません。すべてがコアアプリケーション内で発生します。 –
"data"ディレクトリを削除し、webconsoleまたはjmxを使用して古いキューとの接続があるかどうかを確認します。 –