You can configure that attribute in WildFly using the external resources that 
are designed to connect to a remote Artemis.
Please note that for compatibility reasons WildFly still use the legacy prefix 
internally for its embedded broker.
https://docs.wildfly.org/26/wildscribe/subsystem/messaging-activemq/pooled-connection-factory/index.html#attr-enable-amq1-prefix
https://docs.wildfly.org/26/wildscribe/subsystem/messaging-activemq/connection-factory/index.html#attr-enable-amq1-prefix

Emmanuel



Le 14/06/2024 à 17:58, Tony Lewis a écrit :

The issue is with enable1xPrefix.

I have created the relevant org.apache.activemq.artemis.api.jms.ActiveMQJMSClient.properties file and set this value to false. But it gets overridden when the wildfly server starts up.


I have turned "trace" on and I see where setEnable1xPrefix is set to true. I still don't quite know what is causing it so I will keep debugging it.


Hopefully somebody may know what this is doing. Crossing my fingers.

This is the relevant code in ActiveMQMessageHandler.java that is causing the 
exception that I have included in this email chain.


Around line 145:

SimpleString oldTopicName = (enable1XPrefix && !subResponse.getAddress().startsWith(PacketImpl.OLD_TOPIC_PREFIX) ? PacketImpl.OLD_TOPIC_PREFIX : SimpleString.toSimpleString("")).concat(subResponse.getAddress());


        boolean topicChanged = !oldTopicName.equals(activation.getAddress());


The topic name changed, so it tries to delete it, but it says there is already a consumer on it. The consumer is NOT one that I have created, as the stack trace shows it is a "LocalQueueBinding", not quite sure what that means yet.


So, it fails. The subResponse.getAddress does NOT start with the old prefix, so 
it tries to add it.


I have tried adding the prefix to the topic in there broker.xml.. did not work.

I have put the "multicastPrefix" in the acceptors, but that did not work, 
either.


If anybody knows, I would be more than grateful for the solution. Thank you.





--------------------------------------------------------------------------------------------------------------------------------------------
*From:* Tony Lewis
*Sent:* Thursday, June 13, 2024 1:08:11 PM
*To:* dev@activemq.apache.org
*Subject:* Re: Shared Durable Subscription Problem.

Thank you for your reply and please pardon not including the whole stack. My 
mistake.


Here it is:


2024-06-13 13:30:41,540 WARN [org.apache.activemq.artemis.ra.ActiveMQRALogger] (default-threads - 1) AMQ152005: Failure in broker activation org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec(ra=org.wildfly.extension.messaging.activemq.ActiveMQResourceAdapter@e45ad389 destination=java:global/remoteContext/flowDataChannel destinationType=javax.jms.Topic ack=Auto-acknowledge durable=true clientID=null subscription=DataProcessor user=null maxSession=15): ActiveMQIllegalStateException[errorType=ILLEGAL_STATE message=AMQ229025: Cannot delete queue DataProcessor on binding DataProcessor - it has consumers = org.apache.activemq.artemis.core.postoffice.impl.LocalQueueBinding]

at 
org.apache.activemq.artemis@2.19.1//org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:549)

at 
org.apache.activemq.artemis@2.19.1//org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:443)

at org.apache.activemq.artemis@2.19.1//org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.deleteQueue(ActiveMQSessionContext.java:348)

at 
org.apache.activemq.artemis@2.19.1//org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.deleteQueue(ClientSessionImpl.java:766)

at 
org.apache.activemq.artemis.ra@2.19.1//org.apache.activemq.artemis.ra.inflow.ActiveMQMessageHandler.setup(ActiveMQMessageHandler.java:151)

at 
org.apache.activemq.artemis.ra@2.19.1//org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.setup(ActiveMQActivation.java:317)

at org.apache.activemq.artemis.ra@2.19.1//org.apache.activemq.artemis.ra.inflow.ActiveMQActivation$SetupActivation.run(ActiveMQActivation.java:763)

at org.wildfly.extension.messaging-activemq//org.wildfly.extension.messaging.activemq.ActiveMQResourceAdapter$WorkWrapper.run(ActiveMQResourceAdapter.java:160)

at 
org.jboss.ironjacamar.impl@1.5.3.Final//org.jboss.jca.core.workmanager.WorkWrapper.runWork(WorkWrapper.java:445)

at 
org.jboss.as.connector@26.1.3.Final//org.jboss.as.connector.services.workmanager.WildflyWorkWrapper.runWork(WildflyWorkWrapper.java:69)

at 
org.jboss.ironjacamar.impl@1.5.3.Final//org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:223)

at 
org.jboss.threads@2.4.0.Final//org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:29)

at 
org.jboss.threads@2.4.0.Final//org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:789)

at 
org.jboss.threads@2.4.0.Final//org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:44)

at 
org.jboss.threads@2.4.0.Final//org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:809)

at java.base/java.lang.Thread.run(Thread.java:833)

at 
org.jboss.threads@2.4.0.Final//org.jboss.threads.JBossThread.run(JBossThread.java:513)



Then Wildly server is connecting to an external Artemis broker.

The Wildfly server is running Artemis modules 2.19.1. The external broker is 
2.33.


I have been trying to upgrade the Wildfly server to 2.33.0 but now I am getting 
slf4j class not found errors. So that's another issue.



I have just successfully created durable shared subscribers to the 2.33.0 Artemis broker with a little standalone program, non-JEE using the following methods:


session.createSharedDurableConsumer((Topic) destination, name)

session.createDurableSubscriber((Topic) destination, name))

session.createSharedConsumer((Topic) destination, name)

session.createConsumer(destination));

When invoking the "shared" methods, I do not set the connection's client IDand 
everything works as expected.

So, I'm guessing it is going to be a Wildfly issue.









--------------------------------------------------------------------------------------------------------------------------------------------
*From:* Clebert Suconic <clebert.suco...@gmail.com>
*Sent:* Thursday, June 13, 2024 11:16:06 AM
*To:* dev@activemq.apache.org
*Subject:* Re: Shared Durable Subscription Problem.
something is trying to remove a queue, but it's not allowing it because it had consumers. Post the whole stack trace.. You should have used us...@activemq.apache.org though. Also you didn't provide mu
        
*Caution!* This message is potentially suspicious.
(From: clebert.suco...@gmail.com <mailto:clebert.suco...@gmail.com>, External)
        

        
*First-Time Sender*
This is the first message you've received from this sender. Be careful when 
replying or interacting with any attachments or links.


something is trying to remove a queue, but it's not allowing it

because it had consumers.

Post the whole stack trace..

You should have used us...@activemq.apache.org though.

Also you didn't provide much information about what's happening...

I'm providing you an answer based on the little you posted.

On Thu, Jun 13, 2024 at 10:09 AM Tony Lewis <tle...@securelogix.com> wrote:

>

> I am having a problem with an MDB running on Wildfly 26.1.3. Artemis 2.33.

>

>

> This is the configuration for the MDB:

>

>

> @MessageDriven(activationConfig={

>

> @ActivationConfigProperty(propertyName="destinationLookup",  
propertyValue="java:global/remoteContext/dataChannel")

>

> ,@ActivationConfigProperty(propertyName="destinationType", 
propertyValue="javax.jms.Topic")

>

> ,@ActivationConfigProperty(propertyName="subscriptionDurability", propertyValue 
="Durable")

>

> ,@ActivationConfigProperty(propertyName="subscriptionName", 
propertyValue="DataProcessor")

>

> ,@ActivationConfigProperty(propertyName = "shareSubscriptions", 
propertyValue="true")

>

>

>

>

> And this is the broker.xml for artemis:

>

>

>          <address-setting match="dataChannel">

>

>             <dead-letter-address>DLQ</dead-letter-address>

>

>             <expiry-address>ExpiryQueue</expiry-address>

>

>             <max-delivery-attempts>-1</max-delivery-attempts>

>

>             <redelivery-delay>10000</redelivery-delay>

>

>             <max-redelivery-delay>100000</max-redelivery-delay>

>

>             <redelivery-delay-multiplier>1.5</redelivery-delay-multiplier>

>

>             <!-- 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>true</auto-create-queues>

>

>             <auto-create-addresses>true</auto-create-addresses>

>

>             <auto-create-jms-queues>true</auto-create-jms-queues>

>

>             <auto-create-jms-topics>true</auto-create-jms-topics>

>

>          </address-setting>

>

> ...

>

>        <address name="dataChannel">

>

>            <multicast>

>

>              <queue name="DataProcessor" max-consumers="15">

>

>                <durable>true</durable>

>

>              </queue>

>

>            </multicast>

>

>          </address>

>

>

>

> This is the wildfly log on start up:

>

> ```

>

> 2024-06-13 13:31:17,442 ERROR [org.apache.activemq.artemis.ra.ActiveMQRALogger] (default-threads - 1) AMQ154003: Unable to reconnect org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec(ra=org.wildfly.extension.messaging.activemq.ActiveMQResourceAdapter@e45ad389 destination=java:global/remoteContext/dataChannel destinationType=javax.jms.Topic ack=Auto-acknowledge durable=true clientID=null subscription=DataProcessor user=null maxSession=15): ActiveMQIllegalStateException[errorType=ILLEGAL_STATE message=AMQ229025: Cannot delete queue DataProcessor on binding DataProcessor - it has consumers = org.apache.activemq.artemis.core.postoffice.impl.LocalQueueBinding]

>

> ```

>

>

> This identical code worked in Wildly 18 and Artemis 2.17.

>

> I have tried just about every combination that I can think of, but I think 
I'm at my wit's end.

>

> If anyone can give me a hand here, I would greatly appreciate it.

>

>

--

Clebert Suconic

---------------------------------------------------------------------

To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org

For additional commands, e-mail: dev-h...@activemq.apache.org

For further information, visit: https://activemq.apache.org/contact <https://url.emailprotection.link/?bbhUssy9NPhVM3wTEVsgO7vdLNiutZIlBM-S5lvxolU4i89891M_a2F_txMMVj2H6L4SAOMGhiVSSlyeYmksYygCncUDLBRw5IM7ZWHs892s9wlAV-jePNCUyJdsxZ2iO>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
For additional commands, e-mail: dev-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to