Scala 如何不通过solace JMS发送有保证的消息
我有一个非常简单的制作人类型的程序,它试图向主题发送ByteMessage 我的程序正在接收错误Scala 如何不通过solace JMS发送有保证的消息,scala,jms,solace,Scala,Jms,Solace,我有一个非常简单的制作人类型的程序,它试图向主题发送ByteMessage 我的程序正在接收错误com.solacesystems.jms.ConfigurationException:错误发送消息-路由器不支持操作(无法发送保证消息:此通道上未启用保证消息传递)。 我如何确保发送的消息不是可靠的消息?这是某种solace配置变量吗?下面是我尝试使用的与JMS相关的简单代码,其中字节是我尝试发送的对象: val connection = connectionFactory.createConne
com.solacesystems.jms.ConfigurationException:错误发送消息-路由器不支持操作(无法发送保证消息:此通道上未启用保证消息传递)。
我如何确保发送的消息不是可靠的消息?这是某种solace配置变量吗?下面是我尝试使用的与JMS相关的简单代码,其中字节
是我尝试发送的对象:
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)
请验证是否在设备的连接出厂设置中选中了直接传输
连接工厂中的
直接传输
设置控制用于非持久性消息的传输。请验证是否在设备的连接工厂设置中选中了直接传输
连接工厂中的
直接传输设置
控制用于非持久性消息的传输。这可以通过以下方式解决:
JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory);
jmsTemplate.setDefaultDestinationName(topic);
jmsTemplate.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
jmsTemplate.setExplicitQosEnabled(true);
这可以通过强制QOS进行修复:
JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory);
jmsTemplate.setDefaultDestinationName(topic);
jmsTemplate.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
jmsTemplate.setExplicitQosEnabled(true);
有没有办法在未启用直接传输的情况下发送邮件?这并没有100%解决我的答案,但通过solace客户端更改我的设置是解决方案。有没有办法在未启用直接传输的情况下发送邮件?这并没有100%解决我的答案,但通过solace客户端更改我的设置是解决方案。