Intermittent "Assured message delivery is not enabled on this channel" errors

mystarrocks
mystarrocks Member Posts: 11

Hi there,

We've had this publisher app that sends events to topics other client apps in the firm are subscribed to using queues of their own, for years.

Lately, though, we've started to notice these exceptions intermittently that we've encountered previously. The client profile has "Allow Guaranteed message send" enabled the whole time. As you can tell, we use JMS to send messages using JNDI, and the connection factory did not have "Direct Transport" enabled previously, but we tried enabling it, and it has not helped. Retrying the sending a few times does help get the message sent, but this obviously isn't sustainable.

FWIW, the publisher and consumer apps sharethe same client profile.

Any help would be greatly appreciated. Thanks in advance!

 com.solacesystems.jcsmp.InvalidOperationException: Cannot send assured message: Assured message delivery is not enabled on this channel.
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.sendMsgOnce(JCSMPXMLMessageProducer.java:1109)
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.sendImpl(JCSMPXMLMessageProducer.java:1042)
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.sendToDestination(JCSMPXMLMessageProducer.java:853)
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.sendToDestination(JCSMPXMLMessageProducer.java:794)
at com.solacesystems.jcsmp.impl.JCSMPXMLMessageProducer.send(JCSMPXMLMessageProducer.java:614)
at com.solacesystems.jms.impl.JCSMPMessageProducer.send(JCSMPMessageProducer.java:26)
at com.solacesystems.jms.impl.DefaultMessageProducerAdapter.send(DefaultMessageProducerAdapter.java:168)
at com.solacesystems.jms.SolMessageProducer.sendMessage(SolMessageProducer.java:381)
... 41 common frames omitted
Wrapped by: 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.)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.solacesystems.jms.impl.JMSExceptionValue.newInstance(JMSExceptionValue.java:36)
at com.solacesystems.jms.impl.JCSMPExceptionMapper$ArrayListMapper.get(JCSMPExceptionMapper.java:32)
at com.solacesystems.jms.impl.JCSMPExceptionMapper.get(JCSMPExceptionMapper.java:95)
at com.solacesystems.jms.impl.Validator.createJMSException(Validator.java:582)
at com.solacesystems.jms.SolMessageProducer.sendMessage(SolMessageProducer.java:388)
at com.solacesystems.jms.SolMessageProducer.send(SolMessageProducer.java:165)
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:634)
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:608)
at org.springframework.jms.core.JmsTemplate.lambda$send$3(JmsTemplate.java:586)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:504)
... 36 common frames omitted
Wrapped by: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occurred during JMS processing; nested exception is 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.)
at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:311)
at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:185)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:507)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:584)
at org.springframework.jms.core.JmsTemplate$$FastClassBySpringCGLIB$$2439e2e0.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687)
at org.springframework.jms.core.JmsTemplate$$EnhancerBySpringCGLIB$$d3722a51.send(<generated>)
at com.my.comp.config.notifier.event.SourceSystemNotifier.sendEventToDownstream(SourceSystemNotifier.java:120)
at com.my.comp.config.notifier.event.SourceSystemNotifier.sendNotification(SourceSystemNotifier.java:87)
at com.my.comp.config.notifier.event.SourceSystemNotifier$$FastClassBySpringCGLIB$$932157ee.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
at com.my.comp.LoggingAspect.profileAllMethods(LoggingAspect.java:35)
at jdk.internal.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
at com.my.comp.config.notifier.event.SourceSystemNotifier$$EnhancerBySpringCGLIB$$bcd53e65.sendNotification(<generated>)
at com.my.comp.service.EventManagementServiceImpl.lambda$sendNotification$4(EventManagementServiceImpl.java:271)
at java.base/java.util.Collections$SingletonList.forEach(Collections.java:4856)
at com.my.comp.service.EventManagementServiceImpl.sendNotification(EventManagementServiceImpl.java:271)
at com.my.comp.service.EventManagementServiceImpl.lambda$notificationSender$3(EventManagementServiceImpl.java:252)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at com.my.comp.util.MDCUtils.lambda$withMdc$3(MDCUtils.java:97)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)

Comments

  • Aaron
    Aaron Member, Administrator, Moderator, Employee Posts: 644 admin

    Hi @mystarrocks..! If you're a Solace customer with active Support, please email support@solace.com for immediate help troubleshooting this. Sounds strange.

    If you don't pay for support, then let's see if anyone here has an idea to troubleshoot. Strange that it's intermittent. Does anything show up in the broker's event.log during these issues? Like, the broker is having an HA failover, or the disk performance is suffering?

  • mystarrocks
    mystarrocks Member Posts: 11

    Thanks for the comment, @Aaron. Yes, I am going to have to reach out to our central admin group and have them investigate/contact Solace support. I obviously don't have access to the event.log (wish I did), but those are definitely possibilities we should look into. Thanks again!