Hi Ben, Unfortunately Artemis management console interface is not as obvious and intuitive as IBM MQ Explorer. For the first time it was quite a pain to use it for me. For example, it is possible to create a queue, but first it needs to create an address on which this queue can be created. When selecting different objects in the tree of objects on the left pane, different actions become available. To create a queue, we should first select Addresses in the tree, click Create address tab and create address, then go to the address and click Create queue. When selecting a particular queue we need to select Addresses, select particular address, click queues, click anycast or multicast, then click queues (5 mouse clicks for that simple operation). Some operations, for example Browse or Send message usually hide under a drop-down list depending on the width of the display, and there is almost unusable pane with Artemis, Jolokia etc. which always consume huge part of the screen and can be hidden by clicking an icon with three horizontal dashes. There are some user option which can turn it off by default (only for the current user). When browsing queues, consumers, sessions etc. its list is not bound to the object which is selected, we need to manually create a filter each time when switching to this tab. There is also a very powerful Operations tab - it allows to perform almost any operation with selected object interacting with the management API. Not all operations are implemented in the web interface. There is a command-line utility "artemis" which resides in the bin folder of the instance and it is used to start Artemis. It can be used as CLI to perform some operations.
Instead of manually creating queues, it is possible to allow client applications to create addresses and queues on demand. It eliminates the need to manually create queues. But usually client applications can do something wrong, and there is no way to restrict client applications to create only anycast queue. Another way is to use configuration management addresses, queues and permissions by creating corresponding entries in the broker.xml which is modularized to make it more supportable. For example, it is possible to split configuration to main broker.xml, security settings, address-settings, addresses (and queues). Because no one in our team likes to write xml files with huge number of objects manually, we use Ansible playbook which creates configuration files using templates. Using Ansible we can create and configure an instance of Artemis from scratch in 2-5 minutes with all configuration options, authentication and permissions. пн, 26 февр. 2024 г. в 06:03, Ben F. Zhou <bfz...@hotmail.com>: > Hi Alexander, > > Thank you so much for sharing the insights you have garnered while working > with Artemis. Truly appreciated! > > When I first went through the documentation, I was looking for something > similar to the likes of Intercommunication, MQSC command reference etc. in > MQSeries. I was surprise to find no direct way of creating communication > channels between brokers in the Web GUI. Even manually creating queues > available in ActiveMQ classic is absent in Artemis. That's why I feel > somehow lost on the way to get started. > > You're right. I just have to gnaw through the documentation to reach a > point when things become clear by themselves - just as I did with MQSeries > decades earlier. > > Regards, > Ben > > -----Original Message----- > From: Alexander Milovidov <milovid...@gmail.com> > Sent: Sunday, February 25, 2024 4:56 PM > To: users@activemq.apache.org > Subject: Re: Have Artemis installed, Need advice where to start and how to > start using it ... from IBM MQ world > > Hi Ben, > > I also worked with IBM MQ for several years. I have started with Artemis > from reading the documentation, and continue to check it when something is > not clear for me. > I think it is also necessary to have some real use cases for Artemis > because it is not possible to gain a lot of experience using only test labs. > > I'm not sure that I completely understood the question, but I would like > to share my experience which is based on using both products (IBM MQ and > ActiveMQ Artemis). > > There are some things which are common for "classic" message brokers like > IBM MQ, ActiveMQ Classic and Artemis, other things are different. For > example, messages can be durable (persistent) or non-durable. Messages in > the queues are consumed and removed from the queue when it is acknowledged > by the client as delivered. > The main difference is in the address model of ActiveMQ Artemis. Queue in > IBM MQ is like anycast address in Artemis with anycast queue. Topic in IBM > MQ is like a multicast address with queues which are also subscriptions. > There are no separate objects like subscription and queue to which the > subscription delivers its messages. > It is possible to make the subscriptions like in IBM MQ - we have > experimented creating multicast addresses with diverts (rules to move > messages from "topic address" to other addresses with anycast queues), and > it works. In this case, divert looks like a subscription in IBM MQ. It also > allows different address settings for different consumers. > Subscription or divert can use a filter (like selector in IBM MQ). Divert > can be used in some other cases, for example like an alias queue in IBM MQ, > and it can copy or move messages. > There are some other queue types which have no analog in IBM MQ, for > example ring queues, last-value queues. > > When we tried to use our standard naming for queues (for example, words > separated with dots), we have experienced problems because "." is a > reserved symbol in the subscription name (it is also a queue name) - it is > used as a separator between client id and subscription and this problem > occurs only when using Artemis Core libraries. > One address can be used for anycast and multicast, and it is a real mess. > Clients can auto-create queues with incorrect routing type (if it is > permitted to create queues), after some release the name changes, and > unused queues are piled up with messages. Some clients can read multicast > queue using fully-qualified queue name like "address::queue", other clients > cannot, and I don't have enough knowledge to understand the difference. > > About clusters. Cluster with multiple active nodes in Artemis works like > load-balancing cluster in IBM MQ, but it has a redistribution mechanism > which moves messages to the node where the consumer is connected. But it > adds some overhead to move messages between nodes. > When a client connects to one broker instance, it receives cluster > topology information and can connect to any live node of the cluster. > Sometimes it is necessary to turn off using topology for client-side load > balancing, for example if client needs to connect to another port with SSL. > > Remote queues and sender/receiver channels in IBM MQ: it is possible to > create core bridges between two Artemis servers or clusters to send > messages from one message broker to another. > > There are many things which it is easier to configure in Artemis, and > other things which can cause problems. For example, Artemis has an audit > logging which can log all messages passed through message broker, and it > works out-of-box. Messages are logged with all headers and without payload. > There are also a lot of built-in metrics which can be gathered using > Prometheus. It is easier to configure high availability and resilience in > Artemis because it has several HA mechanisms. I have used primary/backup > with replication. It was easy to configure LDAP authentication and > authorization using groups. > There are some problems with the management web console. Permissions for > the management console are configured separately from permissions on the > broker like in two different applications, and there is no way to reload > management.xml without restarting the broker. But if someone wants to send > a message using management console, it checks if user has send permissions > on the broker (not only in the management console). > And there is no application like IBM MQ Explorer for Artemis. It is > possible to use JMSToolBox only for some scenarios like sending test > messages, listing and browsing queues. > > After some experience with Artemis I mentioned that IBM MQ is more stable > and more tolerant to the situations when large number of messages are left > in the queues. Maybe we have to tune up journal and paging settings in > Artemis. Also we did not find a way to restrict the number of messages in > the particular queue. > > It is not necessary to have Java programming skills, but IMHO it is better > to have at least an experience of running Java application servers. > Sometimes in the open-source world something does not work as expected, it > is where Java developer skills can be very useful. Maybe source code is the > best documentation (at least it is always up to date). > > > > вс, 25 февр. 2024 г. в 20:03, Ben F. Zhou <bfz...@hotmail.com>: > > > Greetings, ... > > > > I'm trying to learn ActiveMQ, have installed and setup Artemis in my > > home lab, created multiple broker instances on several Linux severs, > > and could access the broker instances from the Web GUI. I do > > understand the core architecture. But I'm still lost in finding a way > > to understand how to use the brokers, like putting messages to queues > > and get the them flow through a network of broken instance. > > > > Since I couldn't find a single internet post over the puzzle I'm stuck > > with, I guess my problem has to be a matter of mind-set. I have worked > > with IBM MQ for over two decades, and things there seem too natural > > for me, like setting up a network of interconnected queue managers, > > channels, local/remote queues, clusters etc. But where should I start > with ActiveMQ? > > Do I have to be a Java programmer to use ActiveMQ? I also tried to > > find an ActiveMQ administration training course on Udemy, but could find > nothing. > > > > Thanks much for any advice! > > Ben > > > > > > -- > С уважением, > Александр Миловидов >