FioranoMQ® 10.3.0 Release Notes

Download FioranoMQ Now! FioranoMQ 10.3.0 delivers significant enhancements for enterprise-grade messaging in a number of key areas, from improved enterprise management capabilities and new administrative/configuration tools to a new Component Assembly Framework that allows for more efficient in-process message routing and dispatching. The following sections contain details of the top new enhancements incorporated in this release.

Default PrefetchCount for the JMS Queues has been changed to '30'. PrefetchCount is the number set for each QueueReceiver, so that whenever it requests for more number of messages from the JMS Queue, the Server will send those messages based on this count set. For more information on PrefetchCount and related parameters.

Message Grouping

Support has been added Message Grouping, which ensures that all messages of a message group will be sent to a unique JMS consumer as long as the consumer stays alive. If the consumer goes down, another consumer is automatically chosen and it will receive all unconsumed messages of the message group. Also supported is a preferred message grouping mechanism where consumers can optionally indicate the list of message groups they are be interested in, so that the server can assign those groups accordingly, if they are not already assigned to any other consumer.

Exclusive Consumers

Support has been added for the Exclusive consumer feature, which is a special case of Message Grouping where the broker picks a single consumer on a Queue and delivers all messages to it, ignoring all other consumers. This is effectively like having one consumer owning all message groups regardless of group id.

Admin Objects Configuration

The Admin Objects configuration feature enables the FioranoMQ server to build a set of Connection factories, Destinations, users, groups, and ACLs through an XML based configuration file during the server startup. Separate JMX operations are provided to validate the given XML file, together with an API to create an XML that validates against the schema from an existing broker configuration.

Handling Poisonous messages

Support has been added to handle Poisonous messages, where the receiving applications cannot process such messages. Poisonous messages are automatically rerouted to a Queue [configurable], after being redelivered a configured number of times by the runtime library.

Connection-limit

In addition to the existing global connection limit, connection-limit on per user has been added.

FioranoMQ 9.5.0

This section describes the new features introduced in the FioranoMQ 9.5.0 release.

C++ RTL revamp

An extensive revamp has been performed on the C++ RTL including const correctness of member functions/variables, omission of void* usage, the implementation of proper encapsulation mechanisms, and comprehensive documentation for end users on how to write C++ applications and perform memory management functions. Important enhancements include:

  • Enhanced and fully comprehensive Logging functionality in the C/C++ runtime library.
  • Message properties can now be retrieved using 'PropetyObject', which wraps the parameters 'type' and 'value' that are set for a Message property, to avoid problems while using void*.
  • Non JNDI support has been added, together with corresponding sample programs.
  • For looking up destinations or connection factories, CLookupHelper has been added as the base class to avoid problems while using void*.

Support for Message Compression in C/C++ RTL

Support has been added for message compression/decompression in the C/C++ runtime library, using the ZLIB format. Using the ZLIB format ensures compressed messages received from the Java runtime library are decompressed to proper messages.

Non-Persistent Message Caching

PTP (Point to Point) Queues are provided with an option to store Non-Persistent messages to disk when the in-memory buffers used for storing the messages are full. Optionally, the queues can also be configured to either drop the oldest message(s) to fit in the newer messages or propagate an exception back to the Producer applications when the internal memory buffers are full.

Java RTL logging

For tracking purposes, a logging facility has been added to the Java client side libraries to record information relating to the flow of client applications and error statements. Java RTL logging uses the apache log4j package and log4j.properties file for log level settings for different modules. For more information on Java RTL logging, please refer to FioranoMQ Handbook.

JAAS Integration with FioranoMQ

FioranoMQ now supports JAAS plug-in based authentication, so as to allow it to be integrated with any external service provider implementation which can authenticate users performing operations on FioranoMQ such as, for instance, the creation of a JMS/JMX connection. With JAAS, users can design and build more robust, pluggable and flexible login and authentication mechanisms.

Support for multiple Encryption Algorithms

FioranoMQ now supports multiple encryption algorithms including DES, TripleDES, AES256, AES128, AES192, Base64Encoding, RC2_64, RC2_128 allowing applications to exchange encrypted messages over unreliable networks.

Seasar framework JMS samples

Comprehensive examples have been added on Seasar framework integration with FioranoMQ. The Seasar framework is used extensively in Japan, among a few other countries.

FioranoMQ 9.4.1

This section describes the new features introduced in the FioranoMQ 9.4.1 release.

Last Value Cache

Mainly applicable in the financial domain and pricing infrastructure world, the 'Last Value Cache' feature enables late-starting consumers (typically trading applications) to easily get an accurate ‘snapshot' of data from a set of Topics concurrently, without the race-conditions that typically accompany this calculation using an external message broker without specific support for the feature.. This feature is introduced as an extension to the existing PubSub functionality of the FioranoMQ JMS Broker.

Spring Integration samples

FioranoMQ now shops with a comprehensive list of Spring integration examples covering all of the JMS features provided by Spring framework.

FioranoMQ 9.4.0

This section describes the new features introduced in the FioranoMQ 9.4.0 release.

FioranoMQ Resource Adapter enhancements

Support has been added for FioranoMQ Resource Adapter to use the Log4j implementation. Improvements have been made in ServerSession pooling mechanism of the FioranoMQ RA to ensure proper message flow and reduce the huge backlog of unacknowledged messages in the Queue.

C# Runtime Compression Support

Support has been added for message compression/decompression in C# runtime library which uses the ZLIB format. Using the ZLIB format ensures compressed messages received from the Java runtime library are decompressed to proper messages.

JMX API to get the Dropped messages count

A new JMX API is added to get the number of messages that are dropped for a Subscriber under certain scenarios. This feature is enabled only if the ‘EnableMessageMonitoring' flag is enabled.

Support to configure keyStore and TrustStore

KeyStore and TrustStore for SSL/TLS communication can be initialized using JDK specific system properties, without the need to install the legacy Security Managers to initialize the same.

Option to forcefully kill Client Connections from FioranoMQ server

Support has been provided to disconnect client connections from the FioranoMQ Server through JMX operations and the web-management tool's connection tab. The forceful connection kill will ensure a graceful connection close even if the AutoRevalidation feature is enabled on a client connection.

PSQ data cleanup

Support for Cleanup of Persistent Session Queue Data in case of slow subscribers has been added when the server restarts.

HA Replication


HA Replication calls revamped

HA Replication calls for message read and message commit have been revamped to handle replication call failures at the passive server. These are handled properly to ensure that messages are not delivered again when the passive server becomes active. So, while doing this it is made sure that the Active and Passive databases are exactly identical.

HA Replication support for Connection Consumers

Support for HA Replication calls has been handled for Connection Consumers, enabling application-server integration with FioranoMQ in HA mode.

HA Replication calls for message browser

HA replications are extended to support Queue message browsers.

Performance improvement

Performance improvement have been made in most of PTP scenarios when run in HA Replication mode.

eStudio

Fiorano MQ 9.4.0 comes with a brand new eclipse based Studio called as eStudio. The following features are available in eStudio.

  • Profile Editor for offline server profile configuration
  • Connection Management perspective to manage both Admin and JMX connections to a Server
  • UI crafted for Rich User Experience
Significant user feedback has been incorporated within eStudio to provide a richer user-experience.

FioranoMQ 9.3.0

This section describes the new features introduced in the FioranoMQ 9.3.0 release.

CSP (Client Side Persistence) support for LPC mode

CSP support has been added for a client using LPC (Local Procedure Call) mode in FioranoMQ. In LPC mode, JMS clients hook onto FioranoMQ server locally within the kernel process without the need for socket connections. These clients are revalidated when the HA servers are under Active transition states, and during this state messages are stored into CSP directories.

Web console UI improvements

Web console views have been optimized to handle large data from the MQ server. The views by default shows 25 entries and rest of the entries can be traversed by clicking on provided navigation links. Number of entries per page is configurable. The optimized page view will have more responsive GUI when large number of entries to be displayed.

Support for use of multi-byte characters for FioranoMQ object names and Configurations

The names given for the admin objects like queues, topics, connection factories etc and client related parameters like message selectors, ClientIDs now support Japanese characters in them.

Slow Subscribers identification

FioranoMQ server will now fire notifications whenever a Subscriber is identified to be slow in subscribing messages.

C# RTL logging

Support has been added for C# Client Side logging to record information relating to the flow of client applications and error statements as applications execute and close. C# RTL logging implementation uses the .Net framework's Trace Listeners and the Trace Switches where the log levels can be controlled externally through the <application-name>.config files.

Route configuration persistence

Support has been added to save routes configuration.

LDAP call optimizations

Optimizations are made related to redundant calls to LDAP provider from FMQ Server when getting the ACL information.

HA Replicated calls revamped

HA Replication calls for creating admin objects (like Queues, Topics, Connection Factories) and security principals (like FioranoMQ users, groups and Access control Lists (ACLs) are made similar to the message replication calls i.e., if the replication fails for any reason in the passive server (either failure propagated from passive server or failure during communication), the similar call in the active server is not made. So, while doing this it is made sure that the Active and Passive databases are exactly identical.

FioranoMQ 9.2.1

This section describes the new features introduced in the FioranoMQ 9.2.1release.

XA support for .Net clients

XA support has been added for CSharp runtime library. The resource manager implemented in CSharp RTL enables transactions between RTL resource manager and the FioranoMQ server's resource manager. The CSharp RTL uses the System.Transactions namespace which provides both an explicit programming model based on the Transaction class, as well as an implicit programming model using the TransactionScope class.

Message Selector performance improvement

Code optimizations are done when evaluating conditional statements of a message, which improves the overall performance of simple integer and string message selectors.

Besides the above enhancements all the reported bugs have been fixed.

FioranoMQ 9.2.0

This section describes the new features introduced in the FioranoMQ 9.2.0 release.

Audit management

Audit Management provides a clear picture of the actions performed on Server’s security realms. This helps Administrators in detecting any security violation and conducting post-mortem analysis on the logged information. With the help of policies/rules, you can fine tune the server to log specific activities performed by a set of users or the successful/unsuccessful login attempts and so on.

Internationalization of dashboard and refining log statements

All log statements are internationalized and Japanese UI statements are added in dashboard.

CSP DB recovery tool

DB recovery tool is modified to handle database corruption in Client Side Persistence cache. If CSP cache is corrupted because of No disk space issue or client crash issue, the user will be able to recover the database and send those messages to the server.

SSL support for C# clients

SSL support has been added for CSharp runtime library. The CSharp client application can now use SSL capabilities of the server.

Bridge profile

Configuration files are added for bridges between FioranoMQ and other MQ vendors like SonicMQ, ActiveMQ, OpenMQ. Samples are also added to produce/consume messages from other vendors. See chapter 12 in FioranoMQHandBook for detailed information on how to configure profiles.

Python APIs

New JMS interface has been introduced in Python script for connecting Python applications to the FioranoMQ server. The Python APIs are extended to use the native C runtime library that has complete feature support. The Python package can be downloaded similar to other non-java client libraries.

Besides the above enhancements all the reported bugs have been fixed.

FioranoMQ 9.1.1

This section describes the new features introduced in the FioranoMQ 9.1.1 release.

Performance improvement

Performance have been improved significantly in the FioranoMQ 9.1.1 server particularly in the cases where there are a large number of Publishers and/or Subscribers under a single connection.

Optimizations have been made in the client-runtime as well as at the server level for a better performance for both Non-Persistent messages as well as Persistent messages with Durable Subscribers. The non-persistent message flows have been optimized based on the network speed and server processing capability. Durable subscribers will now process messages much faster when run under a single connection. The performance optimizations significantly improve server scalability in comparison with previous releases.

Latest JMS performance comparison charts can be found at the Fiorano website: www.fiorano.com. FioranoMQ now outperforms all other JMS servers on the market by a significant margin.

FioranoMQ 9.1.0

This section describes the new features introduced in the FioranoMQ 9.1.0 release.

Directory Services Implementation

FioranoMQ 9.1.0 ships with a directory service implementation that allows users to share and manage FioranoMQ (FMQ) profiles in a centralized manner. Apart from helping manage the profiles via a central repository, the directory service also greatly simplifies the storing of information pertaining to each server is registered with the profile. The directory service is also used to manage resources other than profiles.

HA Implementation Enhancements

FioranoMQ 9.1.0 has several enhancements in the implementation of its High Availability servers. The changes ensure that the present solution will achieve better state synchronization between the two HA servers and robustness while handling network outage scenarios. A lock file based solution has been introduced for this very purpose.

The lock file based mechanism ensures that, even when the private link between the servers goes down, there is no chance of both the servers becoming active. Under no circumstance will both the servers be active/ standalone at the same time.

Message Journaling Support

Message Journaling is a FioranoMQ 9.1.0 feature that allows an application to replicate the messages arriving at a destination to another destination of similar type. Message Journaling essentially means to copy a message from one destination to another destination of similar type. When Journaling is enabled, a console-based application can be written in order to consume messages from either of these two destinations. This functionality can be used to audit all the messages that have ever been received on a particular destination.

Destination Level configuration

Parameters at the Subsystem level that are also relevant on a per-destination basis are now configurable at the destination level. For instance, users can now have different values of PurgeLevelIndex for different topics.

Queue/Topic depth monitoring

Depth monitoring is used to monitor the number of pending messages that are currently available on a destination. Depth monitoring fires JMX notifications in situations when the depth of a destination crosses a particular threshold in either direction (increasing or decreasing queue sizes) or if destination is idle for a particular amount of time. Depth monitoring in FioranoMQ 9.1 is only implemented for Queues. Future versions may extend this feature to Topics.

Samples to integrate with the Spring Framework

JMS samples have now been provided that are compatible with and configurable using the Spring Framework. The Spring Framework in a messaging context can be used to provide configurative registration of message listener objects for transparent message consumption from message queues via JMS, an improvement of message sending over standard JMS APIs.

Enhancements in DB recovery tool

The recovery tool now provides much information on what exactly is corrupted, together with the steps that have been taken in recovering the same.

Other Enhancements

FMQ Samples without JNDI, Support for Large Messages in C and C++ runtime, Improved thread management in FMQ Dashboard, Support for Dynamic topics in Repeater, Support for Offline configuration of individual destinations is provided.

FioranoMQ 9.0.1

This section describes the new features introduced in the FioranoMQ 9.0.1 release.

DataBase upgradation utility

A script based utility has been added to automate upgrade of older versions of FioranoMQ databases to FioranoMQ 9. This enables user to use their old databases with latest FioranoMQ version, thus  ensuring that any data available in the old database is compatible with the latest FioranoMQ version. The script while accepting minimal inputs provides all relevant migration changes seamlessly. More detailed instructions on running this script and the various input parameters required are explained in the README file at
{FIORANO_HOME}/fmq/bin/Linux_DBMigration/Readme.txt or
{FIORANO_HOME}\fmq\bin\Windows_DBMigration\Readme.txt in the latest version.

Bug fixes (including bugs reported through the Fiorano Support Portal).

For more details, see Resolved Issues section in the release notes.

FioranoMQ 9.0.0

This section describes the new features introduced in the FioranoMQ 9.0.0 release.

Enhanced Property file based HA profile configuration

All the important parameters like backup HA IP address, port, gateway IP address etc, which are used in HA configuration files are grouped at the start of the HA configuration files. This enables users to edit the configuration files easily to set up replication HA and shared HA profiles.

Client Side logging support in C/C++ runtimes

Support has been added for Client Side logging to record information relating to the flow of client applications, error statements and information relating to the memory being freed up as applications execute and close. This helps in getting more debug information in case of production issues. For more information on how to set different log levels, to enable or disable logging, and to set log names please refer to FioranoMQ CRTL Guide and FioranoMQ C++ RTL Native Guide for C and C++ runtimes respectively.

Enhanced Client Side Persistence (CSP) in C/C++ runtimes

New APIs have been added in order to browse the CSP messages, such as getting the number of messages in CSP Queue or Topic, retrieving queues, topics on a connection etc. Please refer to the FioranoMQ CRTL Guide and FioranoMQ C++ RTL Native Guide for C and C++ runtimes respectively for a detailed description of each API.

Enhanced FioranoMQ web console

The following new tabs have been added for configuration or monitoring:

  • A dispatcher tab which enables operations such as adding and removing servers to the Dispatcher-enabled MQ Server.
  • A Sockets view tab to monitor all the open Sockets on the FMQ Server.
  • A System properties tab which lists all the java system properties that are set in the JVM in which the FMQ Server is running.
  • An Enhanced Connections tab which lists all the JMX connections made to the FMQ Server.

Bug fixes (including bugs reported through the Fiorano Support Portal).

For more details, see Resolved Issues section in the release notes.