Search code examples
jmsjndisolace

Unable to send to Solace JMS queue (Capability Mismatch: Router does not support durable endpoint management)


I am new to Solace. We have an app that looks up a Solace connection factory using JNDI and then sends/consumes messages from various queues.

In one of our environments, we get the following exception.

I assume this is because this Solace broker/router is configured differently. Any pointers on how to fix or troubleshoot the issue appreciated.

nested exception is com.solacesystems.jms.ConfigurationException: Error creating queue - operation not supported on router (Capability Mismatch: Router does not support durable endpoint management.)
    at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316) 
    at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:169)
    at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:497) 
    at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:228)
    at org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:431) 
    at org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:385) 

Solution

  • In order to enable Guaranteed Messaging you basically have to configure this two steps:

    1. Modify the User Profile you're using to allow Guaranteed Send and/or Receive.
    2. Modify the VPN configuration to defin the size of the Message Spool to be used.

    This can be done with the following sample commands on Solace CLI:

    solace(configure)# client-profile default 
    solace(configure/client-profile)# allow-guaranteed-message-receive
    solace(configure/client-profile)# allow-guaranteed-message-send
    solace(configure/client-profile)# exit
    
    solace(configure)# client-username default message-vpn default 
    solace(configure/client-username)# client-profile default 
    solace(configure/client-username)# no shutdown 
    solace(configure/client-username)# exit   
    
    solace(configure)# message-spool message-vpn default  
    solace(configure/message-spool)# max-spool-usage 60000
    

    If you want more information about Guaranteed messaging and more detailed configuration, please refer to:

    https://docs.solace.com/Configuring-and-Managing/Configuring-Guaranteed-Msging.htm