[ 
https://issues.apache.org/jira/browse/ARTEMIS-3002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17429889#comment-17429889
 ] 

Seckin Pulatkan commented on ARTEMIS-3002:
------------------------------------------

Hi, I can confirm this issue also on Artemis 2.10.1 client/server and 2.16.0 
client/server with Wildfly 18.0.1 and Wildfly 23.0.2.Final with extended 
version of [Vromero's Artemis docker 
https://github.com/vromero/activemq-artemis-docker] 2.10.1-alpine and 
2.16.0-alpine

I noticed one thing different though. The consumers with 
@ActivationConfigProperty : shareSubscriptions=false were able to recreate the 
queue and consumer connection. 
Other consumers (with shareSubscriptions=true and specific subscriptionName) 
got QUEUE_DOES_NOT_EXIST error on server side. 
On client side I saw these warning messages
{noformat}
WARN  [org.apache.activemq.artemis.core.client] (Thread-18 
(ActiveMQ-client-netty-threads)) AMQ212036: Can not find packet to clear: 2 
last received command id first stored command id 0
{noformat}
If I restart wildfly then the queues are created and consumers are connected 
without an error on server side. 
I have tried many combinations on following connection factory but same result
{code:xml}
<pooled-connection-factory name="activemq-ra" entries="java:/JmsXA 
java:/jms/RemoteArtemisConnectionFactory 
java:jboss/DefaultJMSConnectionFactory" 
                        connectors="remote-artemis" 
ha="${env.WILDFLY_ARTEMIS_HA:true}" 
                        reconnect-attempts="-1" retry-interval="1000" 
retry-interval-multiplier="1.5" max-retry-interval="60000" transaction="xa"
                        failover-on-initial-connection="true" 
connection-load-balancing-policy-class-name="org.apache.activemq.artemis.api.core.client.loadbalance.FirstElementConnectionLoadBalancingPolicy"
                        connection-ttl="30000" 
client-failure-check-period="15000" use-auto-recovery="true" 
confirmation-window-size="10000000" />
{code}
ha=true or ha=false, confirmation-window-size=-1 or 
confirmation-window-size="10000000", etc. 

On server side, we have this address-setting (so auto create addresses or 
queues are set as true)
{code:xml}
<address-setting match="#">
                <dead-letter-address>DLQ</dead-letter-address>
                <expiry-address>ExpiryQueue</expiry-address>
                <redelivery-delay>20000</redelivery-delay>
                <redelivery-delay-multiplier>2</redelivery-delay-multiplier>
                <max-redelivery-delay>3600000</max-redelivery-delay>
                <max-delivery-attempts>10</max-delivery-attempts>
                <auto-create-queues>true</auto-create-queues>
                <auto-delete-queues>false</auto-delete-queues>
                <auto-create-addresses>true</auto-create-addresses>
                <auto-delete-addresses>false</auto-delete-addresses>
                <default-group-buckets>1024</default-group-buckets>
            </address-setting>
{code}

If I stop docker container of Artemis server and start again, then consumers 
are able to connect as it is considered to be reattachment 
If I remove docker container of Artemis server and run another container, only 
non-shared subscriptions are created and connected. I do not expect a 
reattachment but I thought client would at least reconnect and re-create the 
queue and consumer connection. It is only possible if we restart the client 
application. 
There is no issue on message production, at that time address is created and 
message is put to topic, but since there is no queue (as consumer was not able 
to create it) the message ends up as un-routed message. 

> Client failover broken by "QUEUE_DOES_NOT_EXIST" server error
> -------------------------------------------------------------
>
>                 Key: ARTEMIS-3002
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3002
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.13.0, 2.16.0
>            Reporter: Apache Dev
>            Priority: Critical
>
> Two brokers using HA with shared storage.
> When active broker is killed, backup broker becomes live and clients try to 
> connect to it.
> Randomly, this can happen:
> * client reconnects successfully
> * broker logs the following exception:
> AMQ224016: Caught exception: 
> ActiveMQNonExistentQueueException[errorType=QUEUE_DOES_NOT_EXIST 
> message=AMQ229017: Queue XXX does not exist]
>       at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.createConsumer()
> * client is no more consuming messages
> Really similar to the following issues:
> * https://issues.redhat.com/browse/WFLY-12859
> * https://issues.apache.org/jira/browse/ARTEMIS-1217
> It seems that client, right after reconnection, tries to recreate consumers, 
> but queue bindings have not yet been created on new live server.
> As a workaround it seems to be working to define all queues statically in 
> broker configuration.
> However this is not possible for temporary queues, which also seem to be 
> affected.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to