Skip Ribbon Commands
Skip to main content
Navigate Up
Sign In

Quick Launch

Average Rating:

facebook Twitter
Print Bookmark Alert me when this article is updated


Discovery of Ultra Messaging product use within a production environment.
Usage of Ultra Messaging in production may need to be identified for purposes such as licensing. ​The following ​methods can aid in the identification process. 

​​Ultra Messaging Library Identification

Ultra Messaging is an API, which is provided as a static or shared library to be linked with user applications.  When used as a shared library, the shared object file “” must be accessible to applications at run-time, and usually would be located somewhere on the local file system.  As a first pass, therefore, locating all production servers that have a local copy of the file “” will give you a list of hosts potentially using Ultra Messaging.  (On Windows, the equivalent file name is “liblbm.dll”).

Note:  Identifying usage of static (as opposed to shared) libraries in compiled user applications is a complex exercise; if at all possible, it is easier to identify static usage by asking developers to report any applications whose build-time procedure includes linking with the static library file “liblbm.a” (“liblbm.lib” on Windows).

​Ultra Messaging Daemons Identification

Ultra Messaging also provides shared service components in binary form.  Certain shared service components require a specific license.  For example, an Ultra Messaging Persistence (UMP) license enables the Persistent Store shared service, and an Ultra Messaging Desktop Services (UMDS) license enables the identically-named shared service.

For UMP, you can look for the “umestored” executable (.exe on Windows, no suffix on Linux) on the local file system.  For UMDS, you can look for the “umdsd” executable. For the Dynamic Router (DRO), you can look for the "tnwgd" executable.

Note:  UMDS clients are best located by reviewing the log files of the UMDS shared services, which will record the IP addresses of hosts that have connected to UMDS.

Once you have located servers where either the API or the shared services are present, there are several approaches you can take to narrow down which applications are actually using them.  Ideally, you have access to lists of which production applications are deployed on each host and dependency lists for each of your deployed production applications and can simply query those lists to determine which applications depending on “liblbm” are deployed on those hosts.

​Using Network Trace to Identify Production Hosts

An alternative method of tracking down Ultra Messaging user applications is to look for network traffic that is unique to Ultra Messaging and use that to identify the applications involved.  For applications that are known to be using our product, your developers should be able to give you their Ultra Messaging configuration settings, and with that information you can use command-line tools we provide to run queries on the “topic resolution” a.k.a. “discovery” channels specified in the users’ configuration to find active users.  There is no global centralized list of such discovery channels due to the peer-to-peer nature of the product, hence the need to refer to user configuration, unless you use Wireshark (described below).

The open-source Wireshark tool (a network traffic inspector) includes free plugins for Ultra Messaging that can be used to view our protocols in live or recorded network traffic.   With Wireshark, it is possible to search network traffic to see if any of it matches our discovery protocol and thereby find unknown application usage, but that is labor intensive and hopefully won’t be necessary.

Identifying applications which use Ultra Messaging APIs

If your developers can report to you which of their source code repositories contain the text “LBM” it may be an easier way to identify some (or all) relevant applications, and then you can simply look for which hosts are running those applications.

 If you are trying to differentiate for licensing purposes which product tier each user application is using (e.g., Streaming vs. Persistence [which includes Streaming]), looking at their configuration is the easiest way to check:  if any of the configuration settings begin with the prefix “ume_” then the corresponding user application requires a UMP license.​

More Information



Applies To
Product: Ultra Messaging
Problem Type: Sizing
User Type: Administrator; Business Analyst
Project Phase: Optimize
Product Version:
Operating System:
Other Software:

Last Modified Date: 6/4/2020 6:04 AM ID: 621303
People who viewed this also viewed


Did this KB document help you?

What can we do to improve this information (2000 or fewer characters)