Sending message from ActiveMQ Artemis to ActiveMQ "Classic" - activemq

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.

Related

Migrate ActiveMQ "Classic" Postgres data store to ActiveMQ Artemis

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.

ActiveMQ Bridge Configuration for Solace

I have a requirement to create a bridge between a Queue in ActiveMQ and a Queue in Solace. When ever there is a message in ActiveMQ Queue it should automatically get transferred to SolaceQ.
I'm struggling to find the steps for this configuration. I have ActiveMQ installed on my local machine. Request you to please throw some light on this.
FYI: I'm very new to ActiveMQ/Solace
I think you'll need to do this via JMS since both ActiveMQ and Solace support it. Check out ActiveMQ's docs here: https://activemq.apache.org/jms-to-jms-bridge

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

Does Datapower appliance XI52 support ActiveMQ?

The only answer that I can find seems to say that the datapower appliance only support Websphere MQ, and it doesn't understand ActiveMQ brokers.
And, the documentation for Front Side Handler mentioned Queue managers, which ActiveMQ does not have.
Is there another way in datapower to fetch/poll messages from an activeMQ?
WDP does not support all possible brokers but just a few of them (Tibco, IBM etc). If you configure AMQ to provide a REST interface you can consume messages from it using plain HTTP instead of messaging.
REST/HTTP access to ActiveMQ won't be nearly as good as traditional OpenWire/AMQP connections. It will lack support for transactions and other things, but you can at least read messages.
I do not suggest using an ActiveMQ as messaging backbone for DataPower - go for IBM WebSphere MQ instead as they are nicely integrated. If you need to occasionally pull a message or two from an ActiveMQ broker - go for the above setup.