Generally speaking, using JMS from Spring Boot for asynchronous communication makes sense. This is a common use-case.
My question is why are you using a JMS queue in conjunction with MQTT. Why not a JMS topic together with MQTT or a JMS queue together with STOMP? The problem with using a JMS queue and MQTT is that, as I mentioned previously, MQTT is fundamentally a pub/sub protocol so it doesn't really work well with the point-to-point semantics of a JMS queue. Given this discrepancy I'm not sure it actually is possible to make your use-case work. Justin On Sat, May 4, 2024 at 2:36 AM Pushparaj Chinnathambi <pushpara...@raster.in> wrote: > The reason I’m using JMS is to send messages from a Spring Boot > microservice. This is because, in my architecture, I’m utilizing > asynchronous communication between the microservices using apache activemq > artemis queues. > > On Sat, 4 May, 2024, 10:50 am Justin Bertram, <jbert...@apache.org> wrote: > > > FYI - I opened ARTEMIS-4760 [1] for this issue. I'll send a PR with a fix > > soon. > > > > > > Justin > > > > [1] https://issues.apache.org/jira/browse/ARTEMIS-4760 > > > > On Fri, May 3, 2024 at 12:46 PM Justin Bertram <jbert...@apache.org> > > wrote: > > > > > I believe this is a bug in the MQTT implementation. As noted in the > > > documentation [1]: > > > > > > > Automatic queue creation is for queues that would not otherwise be > > > created during normal operation. > > > > > > However, the MQTT implementation is deciding on whether to create the > > > subscription queue based on the <auto-create-queues> setting. I'll > open a > > > Jira and get this fixed. > > > > > > In the meantime you can work-around this by setting > <auto-create-queues> > > > to true for the relevant address(es). > > > > > > > > > Justin > > > > > > [1] > > > > > > https://activemq.apache.org/components/artemis/documentation/latest/address-model.html#automatic-configuration > > > > > > On Tue, Apr 30, 2024 at 8:41 AM Pushparaj Chinnathambi < > > > pushpara...@raster.in> wrote: > > > > > >> Hi, > > >> I’m trying to connect an ActiveMQ Artemis topic queue with > the > > >> following configurations. Based on my settings, I don’t want to create > > >> dynamic queues when clients establish new connections. However, after > > >> applying this configuration, I’m unable to connect to my topic queue. > > >> Could > > >> you please explain why this is happening and guide me to connect the > > topic > > >> queue without creating the new queue? > > >> > > >> *broker.xml* configuration > > >> > > >> ``` > > >> <address-settings> > > >> <!-- if you define auto-create on certain queues, management > > has > > >> to be auto-create --> > > >> <address-setting match="activemq.management#"> > > >> <dead-letter-address>DLQ</dead-letter-address> > > >> <expiry-address>ExpiryQueue</expiry-address> > > >> <redelivery-delay>0</redelivery-delay> > > >> <!-- with -1 only the global-max-size is in use for > limiting > > >> --> > > >> <max-size-bytes>-1</max-size-bytes> > > >> > > >> > > <message-counter-history-day-limit>10</message-counter-history-day-limit> > > >> <address-full-policy>PAGE</address-full-policy> > > >> <auto-create-queues>false</auto-create-queues> > > >> <auto-create-addresses>false</auto-create-addresses> > > >> </address-setting> > > >> <!--default for catch all--> > > >> <address-setting match="#"> > > >> <dead-letter-address>DLQ</dead-letter-address> > > >> <expiry-address>ExpiryQueue</expiry-address> > > >> <redelivery-delay>0</redelivery-delay> > > >> > > >> > > >> > > <message-counter-history-day-limit>10</message-counter-history-day-limit> > > >> <address-full-policy>PAGE</address-full-policy> > > >> <auto-create-queues>false</auto-create-queues> > > >> <auto-create-addresses>false</auto-create-addresses> > > >> <auto-delete-queues>false</auto-delete-queues> > > >> <auto-delete-addresses>false</auto-delete-addresses> > > >> > > >> <!-- The size of each page file --> > > >> <page-size-bytes>10M</page-size-bytes> > > >> > > >> <!-- When we start applying the address-full-policy, e.g > > >> paging > > >> --> > > >> <!-- Both are disabled by default, which means we will use > > the > > >> global-max-size/global-max-messages --> > > >> <max-size-bytes>-1</max-size-bytes> > > >> <max-size-messages>-1</max-size-messages> > > >> > > >> <!-- When we read from paging into queues (memory) --> > > >> > > >> <max-read-page-messages>-1</max-read-page-messages> > > >> <max-read-page-bytes>20M</max-read-page-bytes> > > >> > > >> <!-- Limit on paging capacity before starting to throw > > errors > > >> --> > > >> > > >> <page-limit-bytes>-1</page-limit-bytes> > > >> <page-limit-messages>-1</page-limit-messages> > > >> </address-setting> > > >> </address-settings> > > >> ``` > > >> > > >> by using this configuration I'm facing queue not found error in > > >> *artemis.log* file > > >> > > >> ``` > > >> 2024-04-29 19:15:34,563 ERROR > > >> [org.apache.activemq.artemis.core.protocol.mqtt] AMQ834002: Error > > >> processing control packet: > > >> > MqttSubscribeMessage[fixedHeader=MqttFixedHeader[messageType=SUBSCRIBE, > > >> isDup=false, qosLevel=AT_LEAST_ONCE, isRetain=false, > > remainingLength=35], > > >> variableHeader=MqttMessageIdAndPropertiesVariableHeader[messageId=1, > > >> properties=io.netty.handler.codec.mqtt.MqttProperties@511f28bc], > > >> > > >> > > > payload=MqttSubscribePayload[MqttTopicSubscription[topicFilter=ONEEMR/PUSH_NOTIFICATION_TOPIC, > > >> option=SubscriptionOption[qos=AT_LEAST_ONCE, noLocal=false, > > >> retainAsPublished=false, retainHandling=SEND_AT_SUBSCRIBE]]]] > > >> > org.apache.activemq.artemis.api.core.ActiveMQNonExistentQueueException: > > >> AMQ229017: Queue ONEEMR.PUSH_NOTIFICATION_TOPIC does not exist > > >> at > > >> > > >> > > > org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.createQueueForSubscription(MQTTSubscriptionManager.java:163) > > >> ~[artemis-mqtt-protocol-2.33.0.jar:2.33.0] > > >> at > > >> > > >> > > > org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.addSubscription(MQTTSubscriptionManager.java:108) > > >> ~[artemis-mqtt-protocol-2.33.0.jar:2.33.0] > > >> at > > >> > > >> > > > org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.addSubscriptions(MQTTSubscriptionManager.java:303) > > >> ~[artemis-mqtt-protocol-2.33.0.jar:2.33.0] > > >> at > > >> > > >> > > > org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.handleSubscribe(MQTTProtocolHandler.java:382) > > >> ~[artemis-mqtt-protocol-2.33.0.jar:2.33.0] > > >> at > > >> > > >> > > > org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.act(MQTTProtocolHandler.java:177) > > >> ~[artemis-mqtt-protocol-2.33.0.jar:2.33.0] > > >> at > > >> org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:32) > > >> ~[artemis-commons-2.33.0.jar:2.33.0] > > >> at > > >> > > >> > > > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > > >> ~[artemis-commons-2.33.0.jar:2.33.0] > > >> at > > >> > > >> > > > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) > > >> [?:?] > > >> at > > >> > > >> > > > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) > > >> [?:?] > > >> at > > >> > > >> > > > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > > >> [artemis-commons-2.33.0.jar:2.33.0] > > >> ``` > > >> *Thanks in advance😊😊* > > >> > > >> On Tue, 30 Apr 2024 at 10:58, Justin Bertram <jbert...@apache.org> > > wrote: > > >> > > >> > From what I can tell you aren't actually subscribed to the ActiveMQ > > >> users > > >> > list so you will not receive any replies sent to the list and not > > >> directly > > >> > to you (which is how replies are normally sent). Please subscribe > [1] > > to > > >> > the list in order to use it properly. Thanks! > > >> > > > >> > Also, please be aware that screenshots attached to emails are not > > passed > > >> > to subscribers. If a screenshot is critical to explaining your issue > > >> please > > >> > upload it somewhere and provide a link to it. Otherwise simply > > describe > > >> in > > >> > more detail what your problem actually is without referencing > > >> screenshots. > > >> > > > >> > > > >> > Justin > > >> > > > >> > [1] https://activemq.apache.org/contact > > >> > > > >> > On Tue, Apr 30, 2024 at 12:14 AM Pushparaj Chinnathambi < > > >> > pushpara...@raster.in> wrote: > > >> > > > >> >> Hi, > > >> >> I’m trying to connect an ActiveMQ Artemis topic queue > with > > >> the > > >> >> following configurations. Based on my settings, I don’t want to > > create > > >> >> dynamic queues when clients establish new connections. However, > after > > >> >> applying this configuration, I’m unable to connect to my topic > queue. > > >> Could > > >> >> you please explain why this is happening and guide me on resolving > > this > > >> >> issue? > > >> >> > > >> >> > > >> >> [image: broker-file-configuration.png] > > >> >> [image: log-file.png][image: queue-settings.png] > > >> >> -- > > >> >> *------------------------* > > >> >> *Thanks & Regards,* > > >> >> *Pushparaj Chinnathambi* > > >> >> Team Lead > > >> >> *Raster Images Pvt. Ltd.* > > >> >> Salem 636 004, TN, India > > >> >> E: pushpara...@raster.in > > >> >> > > >> >> > > >> >> > > >> > > >> -- > > >> *------------------------* > > >> *Thanks & Regards,* > > >> *Pushparaj Chinnathambi* > > >> Team Lead > > >> *Raster Images Pvt. Ltd.* > > >> Salem 636 004, TN, India > > >> E: pushpara...@raster.in > > >> > > > > > >