1

我有一个非常简单的生产者类型程序,它尝试将 ByteMessage 发送到主题。

我的程序收到错误com.solacesystems.jms.ConfigurationException: Error sending message - operation not supported on router (Cannot send assured message: Assured message delivery is not enabled on this channel.)

如何确保发送的消息不是有保证的消息?这是一些安慰配置变量吗?这是我尝试使用的简单 JMS 相关代码,我bytes尝试发送的对象在哪里:

val connection = connectionFactory.createConnection()
val session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val publishDestination = session.createTopic(solace.TOPIC)
val message = new SolBytesMessage()
message.writeBytes(bytes)
val producer = session.createProducer(publishDestination)
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT)
log.info("Sending message")
producer.send(publishDestination, message)
4

2 回答 2

1

这可以固定执行 QOS:

    JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory);
    jmsTemplate.setDefaultDestinationName(topic);
    jmsTemplate.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
    jmsTemplate.setExplicitQosEnabled(true);
于 2018-10-05T10:36:44.597 回答
-1

请确认Direct Transport在设备上的连接工厂设置中选中。

SolAdmin 中的 JMS 连接工厂设置页面

连接工厂中的Direct Transport设置控制用于非持久消息的传输。

于 2016-04-29T03:00:18.820 回答