Release Notes

UM Version 6.1

The most significant update to UM version 6.1 is the introduction of the LBT-SMX transport type. See New Transport LBT-SMX.

There are no special upgrade instructions from UM version 6.0 to 6.1.

Warning
  UM version 6.1 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.

# Enhancements for 6.1 <-

## Streaming Enhancements for 6.1 <-

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

Change Request | Description
--- | ---
| Added LBT-SMX
7529 | Added the polling of context events when using lbm_context_process_events() with operational_mode (context) set to `sequential`. You can now set the lbm_context_process_events() parameter '`msec`' to 0 (zero), which results in the UM context making one pass to process timers, sockets and then timers again before returning the thread to the application without any delay. (Previously, if you set the msec parameter to 10 and the UM context took 5 msecs to process all events, it would wait another 5 msecs before returning the thread to the application.)
7664 | Ultra Messaging no longer sends a Topic Management Record (TMR) when an application deletes a receiver in a standard way with, for example lbm_rcv_delete(), when Dynamic Routers do not exist in the Topic Resolution domain. TMRs specifically inform a Dynamic Router that a receiver for a particular topic has been shutdown. (Without the presence of Dynamic Routers, TMRs become unnecessary network traffic.)
7551 | Added SIGTERM to the list of signals that initiate clean shutdown of all Ultra Messaging daemons.
4785 | Added the ability in the Java and .NET APIs to restrict receiver objects to a single LBMReceiverCallback with a new API: com::latencybusters::lbm::LBMReceiverAttributes::enableSingleReceiverCallback(). You can reduce latencies and increase throughput by using a single callback which removes the need for any synchronization of multiple callbacks within UM during message delivery.
7752 | The Java API now supports Java version 1.7.

## New Transport LBT-SMX <-

The LBT-SMX (shared memory acceleration) transport is an Interprocess Communication (IPC) transport you can use for the lowest latency message streaming. LBT-SMX is faster, though more-restrictive than the LBT-IPC transport. Like LBT-IPC, sources can publish topic messages to a shared memory area from which receivers can read topic messages. Unlike LBT-IPC, the native APIs for the LBT-SMX transport are not thread safe and do not support all UM features such as message batching or fragmentation.

You can use either the native LBT-SMX API calls, lbm_src_buff_acquire() and lbm_src_buffs_complete() to send over LBT-SMX or you can use lbm_src_send_*() API calls. The existing send APIs are thread safe with SMX, but they incur a synchronization overhead and thus are slower than the native LBT-SMX API calls.

LBT-SMX operates on the 64-bit Solaris (X86), Linux (X86) and Windows platforms.

The example applications lbmlatping.* and lbmlatpong.* show how to use the native LBT-SMX API calls. All three APIs (C API, Java API, and .NET API) have identically named example applications. Other example applications can use the LBT-SMX transport with the use of a UM configuration file containing source transport lbtsmx. You cannot use LBT-SMX with example applications for features not supported by LBT-SMX, such as lbmreq.*, lbmresp.*, lbmrcvq.* or lbmwrcvq.*.

The LBT-SMX configuration options are similar to the LBT-IPC transport options. See Transport Transport LBT-SMX Operation Options.

You can use Automatic Monitoring, UM API retrieve/reset calls, and LBMMON APIs to access LBT-SMX source and receiver transport statistics. To increase performance, the LBT-SMX transport does not collect statistics by default. Set the UM configuration option transport_lbtsmx_message_statistics_enabled (context) to 1 to enable the collection of transport statistics.

## Persistence Enhancements for 6.1 <-

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

- None.

## Queuing Enhancements for 6.1 <-

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.1 <-

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

- None.

# Fixed Problems and Limitations for 6.1 <-

## Streaming Fixed Problems and Limitations for 6.1 <-

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

Change Request | Description
--- | ---
7656 | Fixed a problem with lbm_set_umm_info() that caused it to always return 0 (success). The function now returns -1 on a parsing error of a returned UMM configuration file, UMM Daemon login error or a communications error with the UMM Daemon.

## Persistence Fixed Problems and Limitations for 6.1 <-

The following bug fixes apply to UMP and UMQ products.

Change Request | Description
--- | ---
7606 | When a receiver tries to register with a store using a RegID in use by another receiver, the application error log message now includes the RegID: `UME registration error: error in UME registration, RegID 1508542809 is in use by a different receiver at store 0` Previously the message always displayed RegID 0 and no store number.
7604 7666 | When a source tries to register with a store using a RegID in use by another source, the application error log message now includes the RegID, store number and the store's IP address and port: `Error registering source with UME store: error in UME registration, RegID 2323214065 is in use by a different source at store 1 192.168.101.130.21112` Previously the message always displayed RegID 0 and no store information.
7543 | Corrected a problem with UMP stores that resulted in stability acknowledgements sent from a persistent store to the source during a store proxy source election contained invalid topic and transport indexes. As a result, the source discarded the stability acknowledgements.
7658 | The umestored Web Monitor has been changed to correctly display the Request Receive Rate, Service Rate and Drop Rate. Previously the rates only showed activity for the last second instead of a true activity per second rate. As a result the rates often displayed 0 (zero). A link has been added to the Persistent Store Page to reset the rate calculation. The rates can be reset on a per store basis.
7262 | When a store receives a retransmission request from an unknown source, the error log message now includes the IP address and port number of the unknown source: `Core-5688-696: received retransmit request for unknown source 192.168. 101.112:45512`

## Queuing Fixed Problems and Limitations for 6.1 <-

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.

Change Request | Description
--- | ---
7545 | Corrected an issue that prevented a UMQ receiver for a dead letter topic from registering with a queue if any queue instance did not have a record of the creation of the dead letter topic.

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

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

- None.

# Special Upgrade Instructions for 6.1 <-

There are no upgrade instructions specific to 6.1. However, if you are upgrading from a version prior to 6.0, then you must examine the Special Upgrade Instructions for 6.0.

Also see Deprecations.