12. Release UMS 5.2 / UMP 5.2 / UMQ 5.2 - December 2011

12.1. UMS 5.2

12.1.1. New Features

  • Off Transport Recovery (OTR) - Provides recovery from brief unrecoverable loss at the transport level by accessing the source's retention buffer to re-request messages that no longer exist in a transport's transmission window. See Off-Transport Recovery (OTR).

12.1.2. Updates

  • UM Gateway Improvements

    • Added additional Web Monitor statistics and changed the display to indicate which statistics are subsumed into other statistics.

    • Implemented Use Query messages during gateway startup to determine receiver interest. Use Queries address both topics and wildcard patterns. Receivers respond with topic/pattern query responses and the gateway registers their interest. Previously, gateways relied on Topic Resolution Topic Queries and Wildcard Topic Queries which caused all UM applications to respond, spiking TR traffic. Mixing UMversions results in the old behavior. See Interest and Use Queries.

    • Implemented keepalives between gateway peer portals. You can configure the interval between keepalives, the inactivity time after which to consider the companion peer portal as unresponsive, and whether to send keepalives only when the portal is idle. See Gateway Keepalive.

  • Late Join Improvements - Receivers now begin a Late join operation by sending a Late Join Initiation Request (LJIR). Sources respond with a Late Join Information (LJI) message containing updated information about what retained messages are available for retransmission. This method transmits better high and low sequence numbers to the receiver. For more see, Using Late Join.

  • ZOD source events - Implemented Zero Object Delivery (ZOD) feature for Java and .NET receivers and sources. See Zero Object Delivery (ZOD).

  • Changed the name of the hash function, default to classic in both UMS and the UM Gateway. The value default is not supported and results in an error.

  • Added lbm_set_lbtrm_src_loss_rate() and lbm_set_lbtru_src_loss_rate() in the C API to set an RM and RU source packet loss rate for testing purposes.

  • Added the configuration option, resolver_ud_acceleration to disable Accelerated Multicast for Topic Resolution. By default, Topic Resolution will no longer be accelerated unless you set this option to 1.

  • Optimized the delivery of LBMMessage objects when using the .NET API.

  • Increased the maximum size of all UM Web Monitor pages to 1 MB. The previous limit was 64K.

  • Updated all receiving sample applications to print the same transport statistics previously provided by lbmrcv. This includes loss statistics in the bandwidth format [loss, burst loss, unrecovered] and retransmission statistics in the bandwidth format -RX- num_rx_msgs.

  • Added several new LBMSource.send() methods to the Java API that accept a direct ByteBuffer, a starting offset, and a length as parameters. Sends using a direct ByteBuffer can be slightly more efficient than sends from a byte[] array in some cases.

12.1.3. Bug Fixes

  • Resolved the Known Issue: When using the UM Gateway in a failover configuration using LBT-RDMA, if the gateways experience multiple failures, receivers may experience deafness (unable to discovers sources). Now when using LBT-RDMA through the UM Gateway, a receiver can successfully failover from one path to another when there are multiple paths.

  • Resolved the Known Issue: The UM Gateway does not currently support responses that exceed the maximum datagram size.

  • Corrected a problem with the UM Gateway that resulted in an incorrect number of Use Queries. The number of Use Queries now matches the configured number.

  • Fixed a problem bug that occurred if a new application connects via the same LBT-RU ip:port used by a recent application and transport_source_side_filtering_behavior is enabled, the new application could receive messages in which it is uninterested.

  • Corrected a problem that could cause an assert if an application joins an LBT-RU transport session that was previously joined by an application on the same ip:port.

  • Corrected a Topic Resolution problem that occurred when using different resolver_multicast_incoming_port and resolver_multicast_outgoing_port but the same resolver_multicast_incoming_address and resolver_multicast_outgoing_address. As a result, queries could be suppressed which leads to receiver deafness.

  • Corrected a problem with the UM Gateway that resulted in gateways continuing to forward messages on topics for which remote interest no longer exists. Gateways now stop forwarding these messages after the configured timeout.

  • Corrected a problem that removed commas from configuration option values if the options were set with an XML configuration file.

  • Fixed a problem on AIX that prevented Event Queues from holding more than 32K of items and events.

  • Fixed an issue with the Java API that caused application headers to be removed from an LBMMessage when delivered to multiple callbacks on a machine with memory alignment.

  • Corrected a problem with XML configuration files that resulted in a parse error when the element <options> did not contain a child element.

  • Fixed a problem with Source Side Filtering that could result in a fatal assert when using Multithreaded Transports (MTT). The fatal assertion was removed since with MTT, a NULL resolver pointer is an acceptable condition.

  • Corrected a problem with XML configurations that prevented the full range of values for certain configuration options from being specified under allow or deny rules, depending on the platform used. The full range of values can now be specified for all platforms.

  • Corrected the UM C sample applications to be able to parse rate limits greater than 32 bits set on the command line.

  • Fixed several problems that could cause an LBM application to crash if it received various types of malformed or unexpected packets.

  • Experimental licenses for UD Acceleration and LBT-RDMA are no longer reported as invalid.

  • Corrected a problem with the UM Gateway that could cause loss to be reported for messages sent by a source on one side of the gateway prior to the creation of a receiver on the other side.

  • Corrected a problem with .NET UM initialization that could result in Microsoft® Windows® socket APIs being invoked prior to calling WSAStartup.

  • Corrected a problem with the UM Gateway that resulted in a retransmission being sent more than once to a receiver when multiple paths exist from a source to the receiver and late join was enabled.

  • Resolved an issue with the UM Gateway that resulted in a core dump in receiving applications when forwarding a message containing message properties.

  • Corrected a problem that arose from creating Wildcard Receivers with the same pattern but different pattern_types. UM now supports identical patterns with different types in Topic Resolution and across the UM Gateway.

  • Corrected a problem with the UM Gateway that occurred when using UMP across multiple gateway hops. Restarting one of the gateways resulted in receiver deafness.

  • Corrected a problem that occurred when creating and canceling timers that use event queues. UM cancelled the wrong timer if it was already dispatched to the event queue.

  • Corrected a problem that occurred when receiving a message containing message properties with ZOD enabled in Java could result in a java.lang.IllegalArgumentException or a java.nio.BufferUnderflowException.

12.1.4. Known Issues

  • When using the LBT-IPC Resource Manager tool to view the currently allocated IPC transport sessions, the Session ID is presented in the reverse byte order from what is given to the application via the source string.

  • Hot Failover is not currently supported with Multi-Transport Threads.

  • Configuring sources with LBT-RU, source-side filtering, and adaptive batching may cause a crash. All three options must be set to cause the problem. Informatica is working to address this issue.

  • When using the UM Gateway Informatica recommends that you do not enable the Multi-Transport Threads feature. Informatica does not support nor test the operation of Multi-Transport Threads across the UM Gateway.

  • Multi-Transport Threads do not support persistent stores (UMP) or queues (UMQ).

  • When using Event Queues with the Java API on Mac OS X kernel 9.4, core dumps have occurred. Mac OS X kernel versions prior to 9.4 have not produced this behavior. Informatica is investigating this issue.

  • Sending LBT-IPC messages larger than 65,535 bytes is not supported when ordered_delivery has been set to 0 (zero) unless you set transport_lbtipc_behavior to receiver_paced.

  • When using the LBT-RDMA transport with Java applications, a segfault can occur if you kill a receiver with Ctrl-C. As a workaround, use the JVM option, -Xrs. Informatica is investigating this problem.

  • If you use the current version of VMS (3.2.8), UMS 4.1 issues the following warning: LOG Level 5: LBT-RDMA: VMS Logger Message (Error): vmss_create_store: 196[E] vms_listen: rdma_bind_addr failed (r=-1). This warning indicates that rdma_bind failed for ethernet interfaces, which is expected behavior. Currently, VMS attempts rdma_bind on all interfaces. When released, VMS version 3.2.9 will only run rdma_bind on infiniband-capable interfaces.

  • When using Automatic Monitoring with ud_acceleration and the epoll file descriptor option, UMS may leave a monitoring thread running after context deletion. Informatica is investigating this problem.

  • At the present time, 32-bit applications cannot interact with 64-bt applications using the LBT-IPC transport. As a result, a 64-bit UM Gateway cannot interact with a 32-bit application using LBT-IPC. It can only interact with a 64-bit application. Likewise, a 32-bit UM Gateway can only interact with a 32-bit application.

  • The UM Gateway does not currently support gateway failover, MIM, persistence, queuing, JMS, or Ultra Load Balancing. Gateway support of these features is in development.

  • The UM Gateway is not supported as a standalone Windows service at this time. This will be resolved in a future release.

  • The UM Gateway does not currently support a four gateway "full-mesh" configuration (i.e., all gateways connected).

  • If using LBT-RDMA across the UM Gateway and you exit the gateway with Ctrl-C, you may see a segfault. Informatica is aware of this and has not observed any ill effects from this segfault.

  • Informatica recommends against configuring UM Gateways in a ring of peer portals - use configurations utilizing gateway endpoints (parallel paths) to break the ring.

  • Informatica recommends not stopping and restarting UM Gateways within the transport's activity timeout period (transport_*_activity_timeout defaults to 60 seconds for LBTRU and LBTRM).

12.1.5. Version Compatibilities

  • Although UMS 5.0 applications should run well with LBM 4.2 UM Gateways, all Gateways should always run the same version.

12.2. UMP 5.2

12.2.1. New Features

12.2.2. Updates

  • Ultra Messaging Manager (UMM) Improvements

    • One-time Table Update - Existing UMM users must run a one-time script to update your database tables. Please run UMM/update_mysql_tables.sql to change the constraints on the application table. Also the file, UMM/templates.txt has been renamed to UMM/mysql_templates.txt.

    • Added JDBC Support for the UMM database. You can now use an Oracle® database or a MySQL™ database. See Configuring the UMM Database.

    • Implemented SSL encryption between the UMM Daemon and UM applications. See Securing UMM Daemon Communication with SSL.

  • Clean Shutdown - The UMP store and UMQ queue daemon (umestored) now support a clean shutdown mode. See umestored.

12.2.3. Bug Fixes

  • Fixed a problem that allowed UMP proxy sources to steal Registration IDs from an active source. UMP stores now ignore registration requests from proxy sources while the store is still registered with an active source.

  • Corrected a problem when setting the configuration option, ume_session_id with a hexadecimal value. UM now correctly parses any valid hexadecimal value specified for this option.

  • Removed the Ctrl-z keyboard accelerator on the exit menu of the UMM GUI.

  • Fixed a Persistence problem caused by network loss of messages, followed by a timeout and subsequent re-registration of the source, which lead to messages being unrecoverably lost without notification to the receiver. Unrecoverable loss is now correctly reported.

12.2.4. Known Issues

  • A UMP store daemon, umestored, may crash if you enable proxy sources and the daemon is configured with a very restrictive port range, ( transport_lbtrm_multicast_address_low - transport_lbtrm_multicast_address_high, transport_tcp_port_low - transport_tcp_port_high, etc.). Informatica recommends that you use a wide port range (at least 1000 ports) in your UM configuration file if you enable proxy sources for umestored. Informatica is investigating this problem.

  • The UMP store daemon, umestored, stops persisting messages to disk if the store has a loss condition which is not resolved prior to an EOS event. As a workaround, Informatica recommends that you enable receiver delivery_control_loss_check_interval 2500 in the UM configuration file, not the umestored XML configuration file. The value of 2500 assumes the default *_nak_generaltion_interval. See Preventing Undetected Loss for more information. Informatica is investigating this problem.

  • If a source application stops and you restart it before the receiving application declares the EOS event, the receiving application does not send a new keepalive message. The source requires a keepalive message in order to declare a receiver "alive." Informatica is investigating this problem.

  • Receivers using event queues and Spectrum with UMP can experience a SIGSEGV while shutting down if events still exist on the event queue when it is deleted. As a workaround, use LBM_EVQ_BLOCK when dispatching event queues. During application shutdown, call lbm_evq_unblock() after deleting receivers associated with the event queue, but before deleting any context objects. Once the dispatch thread exits, it is safe to proceed with context deletion. Informatica is working on a solution to this problem.

  • When running a store on a Solaris machine, you may experience registration failures after a few minutes. The store repeatedly reports the error, [WARNING]: wait returned error 4 [select: (22) Invalid argument]. Changing fd_management_type to devpoll prevents this problem. Informatica is investigating this problem.

  • UMP proxy source elections can only occur among stores in the same topic resolution domain connected directly via peer links. Informatica is investigating this problem.

12.3. UMQ 5.2

12.3.1. Updates

  • Ultra Messaging Manager (UMM) Improvements - Added UMM GUI support for JMS applications. See Creating JMS Configurations.

  • Additional Ultra Messaging JMS XML Configuration Format - Added the ability to configure Ultra Messaging JMS using the same XML format used by the UMM GUI. The original <JMSConfig> format is still valid. See Ultra Messaging JMS Configuration.

  • Queue Status - Implemented the UMQ SINC Log Tool for comparison and analysis of UMQ log files. See umqsltool.

  • Index Reservation API - Added lbm_rcv_umq_index_reserve() in the C API for UMQ and ULB receivers to reserve specific indices for future assignment. This API can be used for indexed queueing and indexed ULB.

  • Added the configuration options, RECEIVER_CREATION_DELAY, SOURCE_CREATION_DELAY, and SOURCE_REGISTRATION_TIMEOUT, to handle source and receiver creation options. These options should always be used in uppercase in a UM configuration file.

  • Improved the performance of Ultra Messaging JMS internal logging code in source event callbacks.

12.3.2. Bug Fixes

  • Fixed a problem that caused the UMQ queue daemon (umestored) to access free'd memory.

  • Fixed a problem with the reception of large messages (usually 8k or larger) that included message properties by JMS and Java receivers. These receivers can now handle large messages with message properties.

  • Corrected a problem that prevented Registration IDs from being set correctly for some JMS destinations.

  • Removed the trimming of the message payload for JMS TextMessages. Now, JMS does not trim any characters from TextMessage strings.

  • Fixed a problem that resulted in application headers used for Indexed Queuing and Message Lifetimes being created incorrectly. Previously, either Indexed Queuing and Message Lifetimes were usable separately but not simultaneously. Now both are available provided you use Version 5.2 of both the UM library and the Queue (umestored).

  • Fixed an issue that could cause UMQ receivers to go deaf to a queue if the queue was killed and restarted rapidly after the receiver finished registration.

  • Corrected a problem that may have caused transactions across Sessions to adversely affect each other. An internal list of sources is now in the Session object.

  • Fixed an issue with Ultra Messaging JMS that prevented the JMS message id from being set correctly when ULB was specified in the source attributes.

  • Corrected a problem with Ultra Messaging JMS that prevented a message acknowledgement if the session was set to CLIENT_ACKNOWLEDGE mode.

  • Corrected a timing problem in Ultra Messaging JMS that could result in the receiver being closed before the last message was acknowledged.

12.3.3. Known Issues

  • The UM configuration file specified for a queue cannot also contain source attributes for a store such as, source ume_store 127.0.0.1:14567 or source ume_store_name NYstore2.

  • When using multiple sending threads, a Queue (umestored) can deadlock. As a workaround, Informatica suggests that you specify only a single sending thread. Note that 1 sending thread is the current default.

Copyright (c) 2004 - 2014 Informatica Corporation. All rights reserved.