Throughput test application (included in Habari Client demos)
The throughput test application runs two threads, sending and receiving from a topic destination, using two STOMP 1.2 connections.
After a short warm-up time, every second approximately 15,000 messages are sent and received from the Delphi application to the message broker. In total, more than 30,000 messages per second flow between the message broker and the Delphi application.
The previous post listed the basic configuration steps which are required to exchange messages with the default message broker in the WildFly 10 open source application server. This configuration allowed us to run the Habari Client for Artemis chat example application with WildFly 10.
Now we would like to see some interaction with a Java EE 7 program. This article shows the Java code for a simple “chat bot”-like Message-Driven Bean. which logs all messages sent from the Delphi chat client(s) and responds to specific messages.
The program is able to do two things:
log all messages sent to the ExampleTopic destination from all instances of the Delphi chat application which are connected to the ActiveMQ Artemis message broker in WildFly 10
automatically reply to specific messages (similar to a “chat bot”)
As shown in the first part of this article, you can use the Delphi chat demo to send messages to the example topic. If you enter one of the strings which are handled by the source code, the server reply will appear in the client. Note that the reply will appear in every client, if more than one instance of the chat client is connected to the server.
If you wish to exchange messages between Delphi or Free Pascal applications and the WildFly 10 open source application server, follow these steps for a quick demonstration of the new client library from Habarisoft:
The release candidate has been tested with ActiveMQ Artemis 1.0.0, Indy 10.6.2 5302, Free Pascal 2.6.4, Lazarus 1.4.2 and Delphi 2009.
About Habari Client for Artemis
Habari Client for Artemis is easy to install and configure, and provides a high-level API and programming model, based on connections, sessions, destinations, message producers, and message consumers.
About Apache ActiveMQ Artemis:
Apache ActiveMQ Artemis has a proven non blocking architecture. It delivers outstanding performance. Its features include AMQP protocol support, OpenWire support for ActiveMQ 5 clients, STOMP protocol support, HornetQ Core protocol support for HornetQ 2.4,2.5 clients, JMS 2.0 and 1.1 support.
Apache ActiveMQ 5.12.0 resolves several issues, and provides significant improves to the AMQP and MQTT support in the broker as well as fixing issues with STOMP and MQTT over WebSockets plus much much more.
Version 3.5.4 of the RabbitMQ open source message broker introduced a change in the STOMP plug-in to improve compatibility with the PHP STOMP extension. Unfortunately this change breaks client applications which do not expect additional newline characters after the end marker of a STOMP frame.