🎄 Happy Holidays! 🥳

Most of Solace is closed December 24–January 1 so our employees can spend time with their families. We will re-open Thursday, January 2, 2024. Please expect slower response times during this period and open a support ticket for anything needing immediate assistance.

Happy Holidays!

Please note: most of Solace is closed December 25–January 2, and will re-open Tuesday, January 3, 2023.

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!