Skip to main content

ActiveMQ Time Stamp Plugin

By ActiveMQ No Comments

Introduction This article is a quick tip for ActiveMQ users, and introduces the Time Stamp Plugin. Common support queries we get with ActiveMQ are the broker running out of space, or Producer Flow Control kicking in. Often, the cause is simple: messages have been sent to the broker, and haven’t been consumed. This will be exacerbated if you have multiple destinations, and particularly if you use KahaDB for persistence (which is the default). See my post here to get a 10000 ft view on how KahaDB works under the covers, and how it can use a large amount of disk…

Read More

JWT authentication and authorization with Apache ActiveMQ

By ActiveMQ No Comments

Apache ActiveMQ is a well known and very flexible message broker. As such, it fully embraced the AAA model (Authentication, Authorization, Accountability) with built-in plugins.  For example, by default, it comes with Simple Authentication Plugin: it handles user authentication based on the `activemq.xml` defined list of users. Or, as an alternative, you can load users from properties. This is very useful for tests or to quickly bootstrap a project but does not target real-life deployments. JAAS Authentication Plugin: JAAS stands for Java Authentication and Authorization Service and is quite well known in the Java EE space (or Jakarta EE space)….

Read More

Apache ActiveMQ Failover with a SQL Database

By ActiveMQ No Comments

ActiveMQ is often a critical component in Enterprise systems, and therefore High Availability (HA) is a “must have” in order to meet production Service Level Agreements (SLA). This blog aims at providing a deployment architecture based on a set of Apache ActiveMQ brokers wired up to a SQL database.  This blog targets Apache ActiveMQ “classic” as opposed to Apache ActiveMQ Artemis. Failover architecture for high availability What are we trying to achieve? A single instance of ActiveMQ can receive and deliver a very high volume of messages. It is very easy to increase performance and handle more messages by simply…

Read More

KahaDB logs increasing when messages are purged

By ActiveMQ One Comment

One of the common issues we run into with ActiveMQ, is the issue of kahadb log files not being cleared up, leading to the system potentially running out of disk space.  There are a few reasons why these log files are not cleaned up: It contains a pending message for a destination or durable topic subscription It contains an ACK for a message which is in an in-use data file – the ACK cannot be removed as a recovery would then mark the message for redelivery The journal references a pending transaction It is a journal file, and there may…

Read More

The Flexibility and Power of MDBs, Illustrated

By ActiveMQ, Apache TomEE, Open Source, TomEE No Comments

Tomitribe supports many organizations that use Message-Driven Beans in production with TomEE. This post is derived from experience working with those organizations to improve their system performance and software architecture. Previously we published a MDB tutorial followed by a deeper dive in the article “MBD-to-MDB Messaging: Harness the Power of the River Delta“. This week we’ll provide an illustrated example of how MDBs can work together to create flexible and powerful messaging system. JMS The Java Messaging Service (JMS) is a standard for sending messages between clients using a messaging broker. The concepts behind JMS, queues, and topics are explained…

Read More

MBD-to-MDB Messaging: Harness the Power of the River Delta

By ActiveMQ, Apache TomEE, Open Source, TomEE No Comments

Tomitribe supports many of organizations that use ActiveMQ, JMS, and Message-Driven Beans in production with TomEE. This post is derived from experience working with those organizations to improve their system performance and software architecture. The idea behind yesterday’s MDB tutorial was to divide up the work of spidering a web page among three different MDBs each with a specific purpose. This division of labor is an important concept in messaging in general and MDBs in particular. This article shows how MDBs can communicate with outside applications as well as other MDBs in a Java EE application server. This latter capability,…

Read More

5 Minutes or Less: Message-Driven Beans with ActiveMQ and TomEE

By ActiveMQ, Apache TomEE, Open Source, TomEE 6 Comments

Tomitribe supports many of organizations that use ActiveMQ, JMS, and Message-Driven Beans in production with TomEE. This post is derived from experience working with those organizations to improve their system performance and software architecture. When you have finished the tutorial you may be interested in a deeper discussion of what the tutorial is designed to teach you about MDBs. For that, proceed to “MBD-to-MDB Messaging: Harness the Power of the River Delta” which explains how MDBs can be used to create a river delta-like architecture. The tutorial contains three MDBs and one stand-alone JMS client. The purpose of the system…

Read More

5 Minutes or Less: ActiveMQ with JMS Queues and Topics

By ActiveMQ, Jakarta EE, Open Source 15 Comments

Tomitribe supports a lot of clients that use ActiveMQ and JMS in production. This post introduces you to both ActiveMQ and JMS. If you already understand the fundamental concepts behind JMS messaging, skip ahead to “A Short ActiveMQ and JMS Tutorial”. It should take five minutes or less. If you are new to JMS than keep reading! JMS Concepts A messaging system is composed of a JMS Broker (middleware), Queues and Topics, and Producers and Consumers. The JMS Broker There is a common misunderstanding that JMS messages are sent directly from one application to another; that the application sending is…

Read More