The Habari Client library for Delphi and Free Pascal application integration with the RabbitMQ message broker passed the DUnit test suite against the Windows version of RabbitMQ 3.6.0 milestone 2, with one exception: durable topic subscriptions from Stomp 1.0, 1.1 and 1.2 failed to return messages which have been sent while the subscriber was inactive. Update: this issue can be resolved by setting the auto-delete header as explained in the RabbitMQ blog.
The 3.6.0 message broker release supports creating destinations with additional properties. So far, creating a queue with a maximum priority (x-max-priority) has been tested successfully. Other tests will follow. Update: see also the 3.6.0 RC 3 release notes.
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.