Informatica

Ultra Messaging (Version 6.12.1)



.NET Ultra Messaging Examples



© Copyright Informatica LLC 2004-2019.

This software and documentation are provided only under a separate license agreement containing restrictions on use and disclosure. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise) without prior consent of Informatica LLC.

A current list of Informatica trademarks is available on the web at https://www.informatica.com/trademarks.html.

Portions of this software and/or documentation are subject to copyright held by third parties. Required third party notices are included with the product.

This software is protected by patents as detailed at https://www.informatica.com/legal/patents.html.

The information in this documentation is subject to change without notice. If you find any problems in this documentation, please report them to us in writing at Informatica LLC 2100 Seaport Blvd. Redwood City, CA 94063.

Informatica products are warranted according to the terms and conditions of the agreements under which they are provided.
INFORMATICA LLC PROVIDES THE INFORMATION IN THIS DOCUMENT "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING WITHOUT ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ANY WARRANTY OR CONDITION OF NON-INFRINGEMENT.

Example Programs


lbmExampleUtil.cs - General utility functions for UM example programs.


lbmhfxrcv.cs - Usage: lbmhfxrcv [options] topic
Available options:
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -d qdelay = monitor event queue delay above qdelay usecs
  -E = exit after source ends
  -h = help
  -I CIDR = create a receiver on the interface specified by CIDR
            Multiple interfaces are allowed.
            Example:  '-I 10.29.1.0/24 -I 10.29.2.0/24
  -q = use an LBM event queue
  -S = exit after source ends, print throughput summary
  -s num_secs = print statistics every num_secs along with bandwidth
  -r msgs = delete receiver after msgs messages
  -v = be verbose about each message
  -V = verify message contents
  -z qsize = monitor event queue size above qsize in length
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-rcv NUM = monitor receiver every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
       TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string


lbmimsg.cs - Usage: lbmimsg [options] topic
Available options:
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -d delay = delay sending for delay seconds after source creation
  -h = help
  -l len = send messages of len bytes
  -L linger = linger for linger seconds before closing context
  -M msgs = send msgs number of messages
  -o = send topic-less immediate messages
  -P msec = pause after each send msec milliseconds
  -R [UM]DATA/RETR = Set transport type to LBT-R[UM], set data rate limit to
                     DATA bits per second, and set retransmit rate limit to
                     RETR bits per second.  For both limits, the optional
                     k, m, and g suffixes may be used.  For example,
                     '-R 1m/500k' is the same as '-R 1000000/500000'
  -T target = target for unicast immediate messages


lbmlatping.cs - Usage: lbmlatping [options]
Available options:
  -a procmask = set cpu affinity mask.
               Available processors bitmask: 

  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -h = help
  -l len = use len length messages
  -P usec = pause after each send usec microseconds (busy wait only)


lbmlatpong.cs - Usage: lbmlatpong [options]
Available options:
  -a procmask = set cpu affinity mask.
               Available processors bitmask: 

  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -h = help


lbmmon.cs - Usage: lbmmon [options]
Available options:
  -h = help
  -t, --transport TRANS      use transport module TRANS
                             TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
      --transport-opts OPTS  use OPTS as transport module options
  -f, --format FMT           use format module FMT
                             FMT may be `csv'
      --format-opts OPTS     use OPTS as format module options

Transport and format options are passed as name=value pairs, separated by a semicolon.

LBM transport options:
  config=FILE            use LBM configuration file FILE
  topic=TOPIC            receive statistics on topic TOPIC
                         default is /29west/statistics
  wctopic=PATTERN        receive statistics on wildcard topic PATTERN

UDP transport options:
  port=NUM               receive on UDP port NUM
  interface=IP           receive multicast on interface IP
  mcgroup=GRP            receive on multicast group GRP

LBMSNMP transport options:
  config=FILE            use LBM configuration file FILE
  topic=TOPIC            receive statistics on topic TOPIC
                         default is /29west/statistics
  wctopic=PATTERN        receive statistics on wildcard topic PATTERN

CSV format options:
  separator=CHAR         separate CSV fields with character CHAR
                         defaults to `,'


lbmmrcv.cs - Usage: lbmmrcv [options]
Available options:
  -B # = Set receive socket buffer size to # (in MB)
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -C ctxs = use ctxs number of context objects
  -h = help
  -i num = initial topic number num
  -r root = use topic names with root of \
  -R rcvs = create rcvs receivers
  -s = print statistics along with bandwidth
  -v = be verbose about each message
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-rcv NUM = monitor each receiver every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
                              TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string


lbmmsrc.cs - Usage: lbmmsrc [options]
Available options:
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -d delay = delay sending for delay seconds after source creation
  -h = help
  -i num = initial topic number
  -l len = send messages of len bytes
  -L linger = linger for linger seconds before closing context
  -M msgs = send maximum of msgs number of messages
  -r root = use topic names with root of \
  -s = print source statistics before exiting
  -P msec = pause msec milliseconds after each send
  -R [UM]DATA/RETR = Set transport type to LBT-R[UM], set data rate limit to
                     DATA bits per second, and set retransmit rate limit to
                     RETR bits per second.  For both limits, the optional
                     k, m, and g suffixes may be used.  For example,
                     '-R 1m/500k' is the same as '-R 1000000/500000'
  -S srcs = use srcs sources
  -T thrds = use thrds threads
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-src NUM = monitor each source every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
                              TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string


lbmpong.cs - Usage: lbmpong [options] id
Available options:
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -C = collect RTT data
  -E = exit after source ends
  -h = help
  -i msgs = send and ignore msgs messages to warm up
  -I = Use MIM
  -l len = use len length messages
  -M msgs = stop after receiving msgs messages
  -P msec = pause after each send msec milliseconds
  -q = use an LBM event queue
  -r [UM]DATA/RETR = Set transport type to LBT-R[UM], set data rate limit to
                     DATA bits per second, and set retransmit rate limit to
                     RETR bits per second.  For both limits, the optional
                     k, m, and g suffixes may be used.  For example,
                     '-r 1m/500k' is the same as '-r 1000000/500000'
  -t secs = run for secs seconds
  -v = be verbose about each message (for RTT only)
  id = either \


lbmrcv.cs - Usage: lbmrcv [options] topic
Available options:
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -d qdelay = monitor event queue delay above qdelay usecs
  -D = Assume received messages are SDM formatted
  -E = exit after source ends
  -f = use hot-failover
  -h = help
  -n nsrcs = stop topic resolution queries after nsrcs sources
  -q = use an LBM event queue
  -S = exit after source ends, print throughput summary
  -s num_secs = print statistics every num_secs along with bandwidth
  -r msgs = delete receiver after msgs messages
  -N NUM = subscribe to channel NUM
  -v = be verbose about each message
  -V = verify message contents
  -z qsize = monitor event queue size above qsize in length
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-rcv NUM = monitor receiver every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
                              TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string


lbmreq.cs - Usage: lbmreq [options] topic
Available options:
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -d sec = delay sending initial request sec seconds after
            source creation
  -h = help
  -i = send immediate requests
  -q = implement with EventQueues
  -l len = send messages of len bytes
  -L linger = linger for linger seconds before closing context
  -P sec = pause sec seconds after sending request (for responses to arrive)
  -r [UM]DATA/RETR = Set transport type to LBT-R[UM], set data rate limit to
                     DATA bits per second, and set retransmit rate limit to
                     RETR bits per second.  For both limits, the optional
                     k, m, and g suffixes may be used.  For example,
                     '-r 1m/500k' is the same as '-r 1000000/500000'
  -R requests = send request number of requests
  -T target = target for unicast immediate requests
  -v = be verbose 
  -v -v = be even more verbose


lbmresp.cs - Usage: lbmresp [options] topic
Available options:
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -E = end after end-of-stream
  -h = help
  -l len = use len bytes for the length of each response
  -r responses = send responses messages for each request
  -q = implement with EventQueues
  -v = be verbose about each message
  -v -v = be even more verbose about each message


lbmsrc.cs - Usage: lbmsrc [options] topic
Available options:
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -d delay = delay sending for delay seconds after source creation
  -D = Use SDM Messages
  -f = use hot-failover
  -i seq = hot-failover: begin sequencing with this number
  -h = help
  -l len = send messages of len bytes
  -L linger = linger for linger seconds before closing context
  -M msgs = send msgs number of messages
  -N chn = send messages on channel chn
  -n = used non-blocking I/O
  -P msec = pause after each send msec milliseconds
  -R [UM]DATA/RETR = Set transport type to LBT-R[UM], set data rate limit to
                     DATA bits per second, and set retransmit rate limit to
                     RETR bits per second.  For both limits, the optional
                     k, m, and g suffixes may be used.  For example,
                     '-R 1m/500k' is the same as '-R 1000000/500000'
  -s sec = print stats every sec seconds
  -t filename = use filename contents as a recording of message sequence numbers (HF only!)
  -V = construct verifiable messages
  -x bits = Use 32 or 64 bits for hot-failover sequence numbers
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-src NUM = monitor source every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
                              TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string


lbmStatistics.cs - General utility functions for UM example programs.


lbmtrreq.cs - Usage: lbmtrreq [options]
Available options:
  -c filename =      Use LBM configuration file filename.
                     Multiple config files are allowed.
                     Example:  '-c file1.cfg -c file2.cfg'
  -a, --adverts      Request Advertisements
  -q, --queries      Request Queries
  -w, --wildcard     Request Wildcard Queries
  -i, --interval=NUM Interval between requests (milliseconds)
  -d, --duration=NUM Minimum duration of requests (seconds)
  -L, --linger=NUM   Linger for NUM seconds before closing context


lbmwrcv.cs - Usage: [options] topic
Available options
  -c filename = Use LBM configuration file filename.
                Multiple config files are allowed.
                Example:  '-c file1.cfg -c file2.cfg'
  -E = exit after source ends
  -D = Deregister receiver after 100 messages
  -h = help
  -q = use an LBM event queue
  -r msgs = delete receiver after msgs messages
  -s = print statistics along with bandwidth
  -N NUM = subscribe to channel NUM
  -v = be verbose about each message
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
                              TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string


MinRcv.cs - MinRcv.cs - Minimal receiver program.
See Quick Start document.


MinSrc.cs - MinSrc.cs - Minimal source program.
See Quick Start document.


umercv.cs - Usage: umercv [options] topic
Available options:
  -c filename = read config file filename
  -d qdelay = monitor event queue delay above qdelay usecs
  -D = Deregister after 1000 messages
  -e num_messages = send an Explicit ACK every num_messages messages
  -E = exit after source ends
  -h = help
  -i offset = use offset to calculate Registration ID
              (as source registration ID + offset)
              offset of 0 forces creation of regid by store
  -n nsrcs = stop topic resolution queries after nsrcs sources
  -N offset = display recovery sequence number info and set low seqnum to low+offset
  -q = use an LBM event queue
  -r msgs = delete receiver after msgs messages
  -s num_secs = print statistics every num_secs along with bandwidth
  -S = exit after source ends, print throughput summary
  -v = be verbose about each message
  -z qsize = monitor event queue size above qsize in length
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-rcv NUM = monitor receiver every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
                              TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string


umesrc.cs - Usage: umesrc [options] topic
Available options:
  -c filename = read config parameters from filename
  -D Send Deregistration after 1000 messages
  -f NUM = allow NUM unstabilized messages in flight (determines message rate)
  --flight-size = See -f above
  -h = help
  -j = turn on UME late join
  -l len = send messages of len bytes
  -L linger = linger for linger seconds before closing context
  -m NUM = send at NUM messages per second (trumped by -f)
  --message-rate = See -m above
  -M msgs = send msgs number of messages
  -N = display sequence number information source events
  -n = used non-blocking I/O
  -P msec = pause after each send msec milliseconds
  -R [UM]DATA/RETR = Set transport type to LBT-R[UM], set data rate limit to
                     DATA bits per second, and set retransmit rate limit to
                     RETR bits per second.  For both limits, the optional
                     k, m, and g suffixes may be used.  For example,
                     '-R 1m/500k' is the same as '-R 1000000/500000'
  -S ip:port = use UME store at the specified address and port
  -s sec = print stats every sec seconds
  -t storename = use UME store with name storename
  -v = verbose
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-src NUM = monitor source every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
                              TRANS may be `lbm', `udp', or `lbmsnmp', 
default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string


umqrcv.cs - Usage: umqrcv [options] topic
Available options:
  -B broker = use broker specified by address
  -c filename = read config file filename
  -d qdelay = monitor event queue delay above qdelay usecs
  -D = deregister upon exit
  -E = exit after source ends
  -e num_messages = send an Explicit ACK every num_messages messages
  -i offset = use offset to calculate Registration ID
              (as source registration ID + offset)
              offset of 0 forces creation of regid by store
  -I ID = set Receiver Type ID to ID
  -N offset = display recovery sequence number info and set low seqnum to low+offset
  -S = exit after source ends, print throughput summary
  -s num_secs = print statistics every num_secs along with bandwidth
  -h = help
  -n nsrcs = stop topic resolution queries after nsrcs sources
  -q = use an LBM event queue
  -z qsize = monitor event queue size above qsize in length
  -r msgs = delete receiver after msgs messages
  -v = be verbose about each message
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-rcv NUM = monitor receiver every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
                         TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string


umqsrc.cs - Usage: umqsrc [options] topic
Available options:
  -A cfg = use ULB Application Sets given by cfg
  -B broker = use broker specified by address
  -c filename = read config parameters from filename
  -d NUM = delay sending for NUM seconds after source creation
  -f NUM = allow NUM unstabilized messages in flight
  -h = help
  -i = display message IDs for sent message
  -l len = send messages of len bytes
  -L linger = linger for linger seconds before closing context
  -M msgs = send msgs number of messages
  -N = display sequence number information source events
  -m NUM = send at NUM messages per second (trumped by -f)
  -n = used non-blocking I/O
  -P msec = pause after each send msec milliseconds
  -R rate/pct = send with LBT-RM at rate and retranmission pct% 
  -s sec = print stats every sec seconds
  -X = Send using numeric or named UMQ index X
 -Y = Send using named UMQ index for broker sources
  -v = verbose
Monitoring options:\n
  --monitor-ctx NUM = monitor context every NUM seconds
  --monitor-src NUM = monitor source every NUM seconds
  --monitor-transport TRANS = use monitor transport module TRANS
                              TRANS may be `lbm', `udp', or `lbmsnmp', default is `lbm'
  --monitor-transport-opts OPTS = use OPTS as transport module options
  --monitor-format FMT = use monitor format module FMT
                         FMT may be `csv'
  --monitor-format-opts OPTS = use OPTS as format module options
  --monitor-appid ID = use ID as application ID string
  --flight-size = See -f above
  --message-rate = See -m above


VerifiableMessage.cs - Utility functions to produce randomized messages whose contents
can be checked.