MQ4CPP 1.12 review

by on

MQ4CPP short from Message Queuing for C++, is an open source implementation of enterprise messaging system, also referred to as messa

License: LGPL (GNU Lesser General Public License)
File size: 1051K
Developer: Riccardo Pompeo
0 stars award from

MQ4CPP short from Message Queuing for C++, is an open source implementation of enterprise messaging system, also referred to as message-oriented middleware (MOM).

MQ4CPP enables C++ application threads to communicate with other threads locally or remotely through the exchange of messages. A message is a request, report, and/or event that contains information needed to coordinate communication between different applications. A message provides a level of abstraction, allowing you to separate the details about the destination system from the application code.
Specifically, MQ4CPP:

enables C++ applications sharing a messaging system to exchange messages
simplifies application development by providing a standard interface for creating, sending, and receiving messages.

MQ4CPP allows to build clusterized services. A cluster consists of multiple server instances running simultaneously and working together to provide increased scalability and reliability. The server instances that constitute a cluster can run on the same machine, or be located on different machines.

Each server instance contains a session repository of properties (a property represents a state of the service). A session can be replicated on multiple server istance to protect service state. If a server instance on which a service is running fails, another server instance on which that service is deployed can continue application processing. Session replication and service failover work also on heterogeneous platforms.

MQ4CPP implements the following messaging paradigms:

direct/indirect messaging (local)
unsolicited messaging (remote)
request/reply (remote)
reliable messaging (send/ack)
automatic reconnection
connection failover on multiple server
conversation (remote)
broadcast (local)
publish/subscribe (local/remote)
store&forward (remote)
MQ4CPP implements also the following services:
advanced tracing for multi-threading debugging
output on stdout
Microsoft DDK WinDbg debugger
thread safe garbage collector.
performant implementation of LinkedList and Vector patterns.
timer (single shot, self-repeating).
thread safe logger.
deferred queuing to avoid thread locks or infinite looping.
lookup service:

Local services:

remote services
local and remote threads referenced by handle.
automatic clean-up of network connections.
socket transmission:
reuse of same connections
statistical multiplexing.
packets limited to 65 Kbytes to avoid buffer overflows.
packets associated to a sequence number.
session management:
session repository of properties
session replication between multiple server instances
message encription:
Rijndael 128
Rijndael 256
ready for more
complex messages (like XML but in binary format)

As implementation of Request/Reply paradigm, MQ4CPP include also:

Distributed lock manager to allow multiple threads share any resources
File transfer to transfer files between threads
Memory channel to transfer big ammount of memory (for example a cache) between threads.

What's New in This Release:
A new example is included to demostrate how to build peer-to-peer services.

MQ4CPP 1.12 search tags