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
>>
>

Reply via email to