UM C API  6.16
lbm_context_stats_t_stct Struct Reference

Structure that holds statistics for a context. More...

#include <lbm.h>

Data Fields

lbm_ulong_t tr_dgrams_sent
 Number of topic resolution datagrams sent from this context. Each datagram can contain one or more advertisements, queries, query responses, etc. from source or receiver objects. A faster accumulation of counts typically indicates more source, receiver, and/or context objects are being created. (Cumulative)
 
lbm_ulong_t tr_bytes_sent
 Number of topic resolution datagram bytes sent. This count is triggered under the same circumstances as tr_dgrams_sent (above), but measures the total number of bytes for all datagrams sent, including their headers. (Cumulative)
 
lbm_ulong_t tr_dgrams_rcved
 Number of topic resolution datagrams received by this context. Each datagram can contain one or more advertisements, queries, query responses, etc. from source or receiver objects. A faster accumulation of counts typically indicates more source, receiver, and/or context objects are being created. (Cumulative)
 
lbm_ulong_t tr_bytes_rcved
 Number of topic resolution datagram bytes received. This count is triggered under the same circumstances as tr_dgrams_rcved (above), but measures the total number of bytes for all datagrams received, including their headers. (Cumulative)
 
lbm_ulong_t tr_dgrams_dropped_ver
 Number of topic resolution datagrams discarded due to incorrect version. The datagram's version field must match the expectations of the receiving context. (Cumulative)
 
lbm_ulong_t tr_dgrams_dropped_type
 Number of topic resolution datagrams discarded due to incorrect type. The datagram's type field must match the expectations of the receiving context. A mismatch in encryption (TLS) or compression will also be treated as a mismatch of type. (Cumulative)
 
lbm_ulong_t tr_dgrams_dropped_malformed
 Number of topic resolution datagrams discarded due to being malformed or corrupted. (Cumulative)
 
lbm_ulong_t tr_dgrams_send_failed
 Number of topic resolution datagram sends that failed. This count should be at or at least near 0. (Cumulative)
 
lbm_ulong_t tr_src_topics
 Number of topics in the source topic resolver cache (also referred to as the topic map). (Snapshot) More...
 
lbm_ulong_t tr_rcv_topics
 Total number of topics in the receiver topic resolver cache (also referred to as the topic map). (Snapshot) More...
 
lbm_ulong_t tr_rcv_unresolved_topics
 Number of unresolved topics in the receiver topic resolver cache (aka topic map). (Snapshot) More...
 
lbm_ulong_t lbtrm_unknown_msgs_rcved
 Number of datagrams received that do not belong to a currently-subscribed LBT-RM transport session. (Cumulative) More...
 
lbm_ulong_t lbtru_unknown_msgs_rcved
 Number of datagrams received that do not belong to a currently-subscribed LBT-RU transport session. This is typically due to improper or suboptimal UM configuration, or to interference from non-UM network applications. Steady increases in this statistic indicate a waste in CPU resources to read and discard the datagrams. (Cumulative) More...
 
lbm_ulong_t send_blocked
 Number of incidents where a UM send call was blocked. Unusually high counts could indicate performance degradation or I/O problems. (Cumulative)
 
lbm_ulong_t send_would_block
 Number of incidents where a UM send call returned EWOULDBLOCK. This is when a send call set to be nonblocking encounters an error condition where it would otherwise be blocked. Under normal operating conditions, this count should be at or near 0. (Cumulative)
 
lbm_ulong_t resp_blocked
 Number of incidents where a UM send response call was blocked. Unusually high counts could indicate performance degradation or I/O problems. (Cumulative)
 
lbm_ulong_t resp_would_block
 Number of incidents where a UM send response call returned EWOULDBLOCK. This is when a send response call set as nonblocking encounters an error condition where it would otherwise be blocked. Under normal operating conditions, this count should be at or near 0. (Cumulative)
 
lbm_ulong_t uim_dup_msgs_rcved
 Number of duplicate unicast immediate messages (UIMs) received and dropped. (Cumulative)
 
lbm_ulong_t uim_msgs_no_stream_rcved
 Number of unicast immediate messages (UIMs) received without stream information. (Cumulative)
 
lbm_ulong_t fragments_lost
 Number of data message fragments detected as lost in the context. (Cumulative) More...
 
lbm_ulong_t fragments_unrecoverably_lost
 Number of data message fragments detected as unrecoverably lost in the context. (Cumulative) More...
 
lbm_ulong_t rcv_cb_svc_time_min
 The minimum time in microseconds used to call user receive callbacks of type lbm_rcv_cb_proc for wildcard, hot-failover, and regular receivers. (Cumulative) More...
 
lbm_ulong_t rcv_cb_svc_time_max
 The maximum time in microseconds used to call user receive callbacks of type lbm_rcv_cb_proc for wildcard, hot-failover, and regular receivers. (Cumulative) More...
 
lbm_ulong_t rcv_cb_svc_time_mean
 The mean time in microseconds used to call user receive callbacks of type lbm_rcv_cb_proc for wildcard, hot-failover, and regular receivers. (Cumulative) More...
 

Detailed Description

Structure that holds statistics for a context.

This structure holds general context statistics for things like topic resolution and interaction with transports and applications.

Note that when stats are sampled, the fields in the structure are not necessarily from the same instant in time. The structure might be updated concurrently with it being sampled, and while each structure field is atomically read, the field values can be skewed slightly across time.

See lbm_context_stats_t_stct for field definitions.

Cumulative vs Snapshot

Most UM statistics are cumulative. For example, tr_dgrams_sent starts at zero and grows over time as more and more topic resolution datagrams are sent.

But some statistics are snapshots, meaning that they represent the value at a moment in time. These values can go up and down. For example, tr_src_topics indicates the number of sources at the time of the snapshot.

Field Documentation

lbm_ulong_t lbm_context_stats_t_stct::fragments_lost

Number of data message fragments detected as lost in the context. (Cumulative)

UM fragments messages larger than the maximum datagram size for the transport and assigns a unique sequence number to each fragment. UM increments the count when a delivery controller in the context detects a gap in fragment sequence numbers. Lost request responses, Multicast Immediate Message (MIM) messages, or Unicast Immediate Message (UIM) control messages do not increase this statistic. Lost message fragments sent to hot-failover receivers with arrival-order delivery and lost message fragments sent over LBT-SMX do not increase this statistic.

lbm_ulong_t lbm_context_stats_t_stct::fragments_unrecoverably_lost

Number of data message fragments detected as unrecoverably lost in the context. (Cumulative)

UM fragments messages larger than the maximum datagram size for the transport and assigns a unique sequence number to each fragment. UM increments the count when a delivery controller in the context sends a LBM_MSG_UNRECOVERABLE_LOSS or LBM_MSG_UNRECOVERABLE_LOSS_BURST event to the receiving application. Unrecoverably lost message fragments sent to hot-failover receivers with arrival-order delivery do not increment this statistic. An unrecoverable loss event sent by a delivery controller for a receiver underlying the hot-failover receiver does increment this statistic if another underlying receiver was able to compensate. Unrecoverably lost message fragments sent over LBT-SMX do not increment this statistic.

lbm_ulong_t lbm_context_stats_t_stct::lbtrm_unknown_msgs_rcved

Number of datagrams received that do not belong to a currently-subscribed LBT-RM transport session. (Cumulative)

This is typically due to improper or suboptimal UM configuration, or to interference from non-UM network applications. Steady increases in this statistic indicate a waste in CPU resources to read and discard the datagrams. A common cause is different application instances creating transport sessions with the same multicast group and destination port.

lbm_ulong_t lbm_context_stats_t_stct::lbtru_unknown_msgs_rcved

Number of datagrams received that do not belong to a currently-subscribed LBT-RU transport session. This is typically due to improper or suboptimal UM configuration, or to interference from non-UM network applications. Steady increases in this statistic indicate a waste in CPU resources to read and discard the datagrams. (Cumulative)

One possible cause is if a subscribing application exits and a new application starts with the same IP address and port for reception of LBT-RU traffic. The source can continue to send messages to that IP:port until the source times out the previous receiver (10 seconds by default; see source option transport_lbtru_client_activity_timeout (source)).

lbm_ulong_t lbm_context_stats_t_stct::rcv_cb_svc_time_max

The maximum time in microseconds used to call user receive callbacks of type lbm_rcv_cb_proc for wildcard, hot-failover, and regular receivers. (Cumulative)

Does not include SMX receivers. Does not include minimum times for any other context thread callbacks, such as timer callback or immediate message callbacks. The initial value before any data has been reported is zero. UM computes the maximum value as the larger of the current measured value and the current statistic value. A value of zero equates to no measurement. For the Java and .NET APIs, includes the overhead time spent crossing the managed/jni boundaries. You must set the configuration option receiver_callback_service_time_enabled (context) to populate this statistic.

lbm_ulong_t lbm_context_stats_t_stct::rcv_cb_svc_time_mean

The mean time in microseconds used to call user receive callbacks of type lbm_rcv_cb_proc for wildcard, hot-failover, and regular receivers. (Cumulative)

Does not include SMX receivers. Does not include minimum times for any other context thread callbacks, such as timer callback or immediate message callbacks. For the Java and .NET APIs, includes the overhead time spent crossing the managed/jni boundaries. You must set the configuration option receiver_callback_service_time_enabled (context) to populate this statistic.

lbm_ulong_t lbm_context_stats_t_stct::rcv_cb_svc_time_min

The minimum time in microseconds used to call user receive callbacks of type lbm_rcv_cb_proc for wildcard, hot-failover, and regular receivers. (Cumulative)

Does not include SMX receivers. Does not include minimum times for any other context thread callbacks, such as timer callback or immediate message callbacks. The initial value before UM Monitoring reports any data is the largest possible unsigned integer, which is 4294967295 for 32-bit system and 18446744073709551615 for 64-bit system. Ultra Messaging computes the minimum value as the smaller of the current measured value and the current statistic value. The largest possible value equates to no measurement. For the Java and .NET APIs, includes the overhead time spent crossing the managed/jni boundaries. You must set the configuration option receiver_callback_service_time_enabled (context) to populate this statistic.

This field is initialized to all 1s (-1 if printed signed).

lbm_ulong_t lbm_context_stats_t_stct::tr_rcv_topics

Total number of topics in the receiver topic resolver cache (also referred to as the topic map). (Snapshot)

Entries are inserted in this map as sources are discovered. Note that in typical configurations, an application's own sources will be included. Also note that creating a receiver object will insert an entry in the resolver cache to assist internally in joining subscribed topics. See Resolver Caches for more details.

See Topic Resolution Description for more information on TR.

lbm_ulong_t lbm_context_stats_t_stct::tr_rcv_unresolved_topics

Number of unresolved topics in the receiver topic resolver cache (aka topic map). (Snapshot)

While it is normal for this to occasionally be greater than zero, the counter should reduce back to zero in most applications. A long-lasting non-zero value can indicate topic deafness, possibly due to improper topic resolution configuration.

lbm_ulong_t lbm_context_stats_t_stct::tr_src_topics

Number of topics in the source topic resolver cache (also referred to as the topic map). (Snapshot)

Entries are inserted in the source topic resolver cache as sources are created in the context by the application. See Resolver Caches for more details.

See Topic Resolution Description for more information on TR.


The documentation for this struct was generated from the following file: