我使用spring JMS连接到WSO2MB服务器。一切都工作正常,但所有听众都被分配了相同的ID。为了使它独一无二,我提供了clientId,但它没有用。我找不到任何其他可以提供名称的字段。
我甚至在JMS监听器上提供了id,但没有成功。
@Bean
@ConditionalOnProperty(name="my.listener.active", matchIfMissing = true)
public JmsListenerContainerFactory jmsListenerContainerFactory(@Qualifier("listenerConnectionFactory") ConnectionFactory connectionFactory) throws URLSyntaxException {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
factory.setClientId("listener"+listenerTopic);
if (Boolean.valueOf(listenerTopic)) {
factory.setSubscriptionDurable(true);
factory.setPubSubDomain(true);
}
return factory;
}
@JmsListener(destination = "${default-queue-name-to-listen}", id = "${default-queue-name-to-listen}")
public void receiveMessage(final Message<T> message) throws JMSException {
}
答案 0 :(得分:0)
每个连接都需要有唯一的clientID
void org.apache.activemq.ActiveMQConnectionFactory.setClientID(String clientID)
设置用于创建的连接的JMS clientID。 请注意,这通常只能由一个连接一次使用 最好在Connection
上设置clientID
您的解决方案是使用org.springframework.jms.connection.SingleConnectionFactory
答案 1 :(得分:0)
订阅名称使连接名称唯一并解决了我的问题
const Telegraf = require('telegraf');
var fs = require('fs');
const app = new Telegraf(process.env.BOT_TOKEN);
var filePath = "C:\\path\\to\\my\\file.txt";
fs.watchFile(filePath, function() {
file = fs.readFileSync(filePath);
// Send message to chat or group with the file content here
console.log("File content at: " + new Date() + " is: \n" + file);
})