Release Notes

UM Version 6.5

The most significant update to UM version 6.5 is the introduction of the Ultra Messaging System Monitoring option.

Warning
  UM version 6.5 does not interoperate reliably with versions of UM prior to 6.0 It was not until UM version 6.7 and beyond that interoperability was introduced between the 6.x version line and the 5.x version line.

Attention
  There are some special upgrade instructions for UM versions 6.5 and beyond that will affect a small percentage of users upgrading from pre-6.5 versions of UM. See Special Upgrade Instructions for 6.5. For general upgrade instructions, see Upgrade Procedure. You are also advised to inspect the full list of Deprecations.

# Enhancements for 6.5 <-

## Streaming Enhancements for 6.5 <-

The following new features and enhancements apply to UMS, UMP, and UMQ products.

Change Request | Description
--- | ---
7911 | You can now configure Ultra Messaging to use Solarflare Onload to select transport sockets for acceleration. Onload is a kernel-bypass technology that accelerates message traffic and operates with Solarflare 10GbE Ethernet NICs. See Solarflare Onload for more information.
7974 | The lbmrd daemon now includes command line option "-f" or "--lic-file" to let you specify the Ultra Messaging license file.

## Persistence Enhancements for 6.5 <-

The following new features and enhancements apply to UMP and UMQ products.

Change Request | Description
--- | ---
7478 | The Persistent Store Web Monitor now displays the Session ID on the Store page, Source page, and Receiver page.

## Queuing Enhancements for 6.5 <-

Note
  The brokered queuing and UM JMS functionalities were replaced in version 6.8, so most of these notes do not apply to more-recent versions of UM. However, ULB functionalty is retained.

The following new features and enhancements apply to the UMQ product.

- None.

## Dynamic Router Enhancements for 6.5 <-

The following new features and enhancements apply to the Dynamic Routing Option (DRO).

Change Request | Description
--- | ---
7694 | You can now use the LBT-SMX transport to send ingress message traffic to a DRO. The DRO no longer ignores topic resolution traffic from a LBT-SMX source. You still cannot, however, use LBT-SMX to send egress traffic from a DRO.

# Ultra Messaging System Monitoring Option <-

In conjunction with the Ultra Messaging 6.5 release, Informatica has introduced the Ultra Messaging System Monitor Option (UMSM). Administrators can use UMSM to monitor components of an Ultra Messaging deployment. The UMSM dashboard displays the status of components, such as UM hosts, transports, topic resolution domains, and application instances, as well as UM statistics.

UMSM monitors the messaging traffic of Ultra Messaging versions 5.0 and later.

With the Ultra Messaging 6.5 release, Ultra Messaging Automatic Monitoring sends the following aggregated receiver statistics and subscription information to UMSM:

- Aggregate number of topic-level sequence numbers received out of order.
- Aggregate number of topic-level sequence numbers declared unrecoverably lost by the delivery of either an LBM_MSG_UNRECOVERABLE_LOSS or LBM_MSG_UNRECOVERABLE_LOSS_BURST event to the receiving application.
- Receiver callback service time statistics. Ultra Messaging tracks the mean time, maximum time, and minimum time to service receiver callbacks.

As the collection of aggregated statistics can increase the latency of message delivery, Ultra Messaging does not collect them by default. You can enable UMSM to collect the aggregated message loss statistics with the UM configuration options, monitor_interval (receiver) and monitor_interval (wildcard_receiver). You can access the aggregated receiver statistics with UMSM. The lbmmon API does not provide access to the aggregated receiver statistics.

The Ultra Messaging 6.5 release contains a third new UM configuration option, receiver_callback_service_time_enabled (context), which enables UMSM to maintain receiver callback service times. The lbmmon API does not provide access to the receiver callback service times.

# Fixed Problems and Limitations for 6.5 <-

## Streaming Fixed Problems and Limitations for 6.5 <-

The following bug fixes apply to UMS, UMP, and UMQ products.

Change Request | Description
--- | ---
7103 | FIXED: The lbmsrc.java example application throws an exception if the application sent SDM messages or variable message lengths. lbmsrc.java now correctly adjusts the message buffers as needed.
7125 | FIXED: The following two Java send methods that do not work properly when used with a callback object (cbArg): send(byte[] message, int messageLength, int flags, java.lang.Object cbArg) send(java.nio.ByteBuffer message, int startPosition, int messageLength, int flags,java.lang.Object cbArg) These methods are now deprecated. Use the send method that accepts an LBMSourceSendExInfo object instead.
7374 | FIXED: An internal synchronization issue can cause LBM_EWOULDBLOCK errors when messages are sent by sources or by MIM.
7602 | FIXED: A problem with the lbmmon transport option "wctopic" prevents lbmmon from collecting statistics for sources sending on topics that match the wildcard pattern.

## Persistence Fixed Problems and Limitations for 6.5 <-

The following bug fixes apply to UMP and UMQ products.

Change Request | Description
--- | ---
7401, 7527 | FIXED: A persistent source using adaptive batching can crash with a segmentation fault.
7627 | Converted UM log messages "Core-5688-3110" and "Core-5688-31" to debug log messages. These messages are not essential to normal operation of the Store. If you want to see them, set the LBM_DEBUG_FLAG to LBM_DEBUG_UME.

## Queuing Fixed Problems and Limitations for 6.5 <-

Note
  The brokered queuing and UM JMS functionalities were replaced in version 6.8, so most of these notes do not apply to more-recent versions of UM. However, ULB functionalty is retained.

The following bug fixes apply to the UMQ product.

- None.

## Dynamic Router Fixed Problems and Limitations for 6.5 <-

The following bug fixes apply to the Dynamic Routing Option (DRO).

- None.

# Special Upgrade Instructions for 6.5 <-

## UM 6.5 Context Stats Expansion <-

In UM version 6.5, the data structure lbm_context_stats_t was expanded with the addition of five fields:

- lbm_context_stats_t::fragments_lost,
- lbm_context_stats_t::fragments_unrecoverably_lost,
- lbm_context_stats_t::rcv_cb_svc_time_min,
- lbm_context_stats_t::rcv_cb_svc_time_max, and
- lbm_context_stats_t::rcv_cb_svc_time_mean.

This broke ABI compatibility.

If your application uses the lbm_context_stats_t structure and was originally built with a UM version prior to 6.5, it will have to be recompiled to work with UM 6.5 and beyond. This is because the application allocates the smaller pre-6.5 size. But if that binary is executed with UM 6.5 or beyond, the lbm_context_retrieve_stats() function will assume that it is the larger 6.5-and-beyond size, and will write past the end of the application's structure allocation. This can produce program crashes and corrupted data.

If your program does not use the lbm_context_stats_t structure, then recompiling is not necessary.

## Previous Special Instructions <-

If you are upgrading from a UM version prior to 6.0, you must also examine the Special Upgrade Instructions for 6.0.

Also see Deprecations.