Migrate ActiveMQ "Classic" Postgres data store to ActiveMQ Artemis - activemq

I'm using ActiveMQ "Classic" in my project and need to update to Spring 6, Spring Boot 3 to use jakarta, but the ActiveMQ "Classic" client is not ready to use jakarta and Spring 6 requires jakarta connection and not javax connection.
So I decided to migrate to ActiveMQ Artemis and use the Artemis JMS client in my code because Artemis is already using jakarta.
But my ActiveMQ is using Postgresql store and I need to restart Artemis with the same store to not lose data. Are there tools to migrate activemq_msgs to new Artemis table?

There is no tool to migrate data directly from the "Classic" tables to the Artemis tables.
The recommendation would be to stand up your ActiveMQ Artemis instance next to your existing ActiveMQ "Classic" instance and then set up a bridge (or collection of bridges) or perhaps even a Camel route to move messages from one broker to another.

Related

Sending message from ActiveMQ Artemis to ActiveMQ "Classic"

I'm using Apache ActiveMQ Artemis (N1) for my work, and recently I've got a task to send some messages to another ActiveMQ "Classic" (N2) which is used by another system. However, I don't know how should I write divert configurations at broker.xml file. Is it possible? Could you give an example of divert to another URL-address and queue. Where should I write login/password for connection to N2?
Diverts in ActiveMQ Artemis only work with local resources. To send messages to another instance of ActiveMQ Artemis you'd use a core bridge. However, that only works between instances of ActiveMQ Artemis. ActiveMQ "Classic" doesn't support the protocol which the core bridge uses.
In order to send messages from ActiveMQ Artemis to ActiveMQ "Classic" you'd need to use something like Camel or the JMS bridge shipped with ActiveMQ Artemis. Both of these solutions can be deployed as web applications using the embedded web application server in ActiveMQ Artemis. We ship examples of both. The Camel example is in examples/features/standard/camel/ and the JMS bridge example is in examples/submodules/inter-broker-bridge.

Is that possible to communicate JMS Topic of HornetQ with ActiveMQ or vice versa

I have a HornetQ project on JBoss 6 using JDK-6, and an ActiveMQ project on WildFly 18 using JDK-11. Can I access the HornetQ topic in the ActiveMQ project or vice versa?
If you're using ActiveMQ Artemis embedded in WildFly 18 then you should be able to connect to it from your HornetQ client because ActiveMQ Artemis is based on the HornetQ code-base and has maintained backwards compatibility with older HornetQ clients.
However, you will not be able to use the ActiveMQ Artemis JMS client to talk to HornetQ.

Can a core bridge on Apache ActiveMQ Artemis Server be configured between the same source and destination server

I am trying to understand if a core bridge on Apache ActiveMQ Artemis Server be configured between the same source and destination server. The reason why I'm doing this is because my publishers write messages to Queue A and Queue B but my subscriber only listens to Queue AB. So my intent is to bridge Queues A and B into Queue AB. From Artemis user manual I read :
The function of a bridge is to consume messages from a source queue, and forward them to a target address, typically on a different Apache ActiveMQ Artemis server
and
In summary, bridges are a way to reliably connect two separate Apache ActiveMQ Artemis servers together. With a core bridge both source and target servers must be Apache ActiveMQ Artemis servers.
What isn't clear to me is if the source and the destination Artemis server could be the same or do they need to be different.
Technically speaking I don't see why a core bridge can't have the same source and destination broker. However, it's not necessary. You can simply use a divert for your use-case. As the documentation states:
Diverts allow you to transparently divert messages routed to one address to some other address, without making any changes to any client application logic.

ActiveMQ Artemis read messages without consuming it in JMeter

I want to know if it is possible to read queue messages in ActiveMQ Artemis without consuming or removing it using JMeter.
I have find similar question Here. But I really don't know how to configure it in JMeter. I'm new in it.
In a normal JMS client you'd do this using a QueueBrowser. However, JMeter doesn't support this. It only supports:
JMS Publisher
JMS Subscriber
JMS Point-to-Point

Supported ActiveMQ integrations

I am looking at ActiveMQ (Red Hat AMQ Broker in particular) and trying to find out what integrations/connectors are available apart of the supported protocols (JMS, AMQP, MQTT, OpenWire).
For Kafka, there is e.g. the Confluent hub, https://www.confluent.io/hub/. Is there something similar for ActiveMQ?
I am especially interested in reading & writing messages from
files
databases
HTTP
HDFS
Is there any out-of-the-box or existing 3rd party support, or do I need to implement it?
For a statement about things that Red Hat officially supports you should contact Red Hat directly.
I recommend you look at Apache Camel for 3rd party integrations for ActiveMQ brokers. Camel routes can be deployed directly on both ActiveMQ 5.x and ActiveMQ Artemis brokers. Camel can integrate with files, databases, HTTP, HDFS, JMS, AMQP, MQTT, STOMP, and many more (including Kafka).