如何不通过安慰 JMS 发送有保证的消息
How to NOT send an assured message via solace JMS
我有一个非常简单的生产者类型程序,它尝试将 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)
请确认在设备的连接出厂设置中选中 Direct Transport
。
连接工厂中的 Direct Transport
设置控制用于非持久消息的传输。
这可以通过执行 QOS 来解决:
JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory);
jmsTemplate.setDefaultDestinationName(topic);
jmsTemplate.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
jmsTemplate.setExplicitQosEnabled(true);
对于通过搜索此错误消息发现此问题的任何人 - 如果您确实想在这种情况下发送有保证的消息,请启用直接传输并编辑 Solace 代理上的客户端配置文件以具有“发送有保证的消息”已启用。
我有一个非常简单的生产者类型程序,它尝试将 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)
请确认在设备的连接出厂设置中选中 Direct Transport
。
连接工厂中的 Direct Transport
设置控制用于非持久消息的传输。
这可以通过执行 QOS 来解决:
JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory);
jmsTemplate.setDefaultDestinationName(topic);
jmsTemplate.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
jmsTemplate.setExplicitQosEnabled(true);
对于通过搜索此错误消息发现此问题的任何人 - 如果您确实想在这种情况下发送有保证的消息,请启用直接传输并编辑 Solace 代理上的客户端配置文件以具有“发送有保证的消息”已启用。