2016-04-28 93 views
0

我有一个非常简单的生产者类型的程序,试图发送一个ByteMessage到一个主题。如何不通过安慰发送有保证的消息JMS

我的程序接收到错误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) 

回答

0

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

JMS Connection Factory setting page in SolAdmin's

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

+0

有没有办法在没有启用直接传输的情况下发送消息? – Zee

+0

这没有100%解决我的答案,但通过安慰客户端更改我的设置是解决方案。 – Zee