39. Release LBM 3.6.1 - February 2010

39.1. LBM 3.6.1

39.1.1. New Features

  • Changed the naming of lbmmon statistics to refer to datagrams rather than messages. For example, the LBT-RM transport receiver statistic for bytes received is now labeled, datagram bytes received because the statistic includes datagram overhead bytes in addition to application message bytes.

  • Implemented backward compatibility for LBMMON statistics packets for LBM Version 3.6.1 and later by enhancing LBMMON internal message processing. Backward statistics compatibility does not apply to prior LBM versions.

  • Added support for multiple outstanding asynchronous AcceptEx calls when using Microsoft® Windows® IO completion ports. This allows multiple incoming connections to be serviced more quickly when using completion ports. The number of outstanding AcceptEx calls can be controlled by the transport_tcp_listen_backlog and request_tcp_listen_backlog configuration options.

  • LBM now logs the originating IP and port number of all non-LBM packets received.

  • Changed the previously internal message timestamp field to a public field in the lbm_msg_t structure. Also added the timestampSeconds() and timestampMicroseconds() methods to .NET and Java LBMMessage classes.

  • Added the following methods to the Java API and the .NET API.

    • LBMContext sendc(char [] target, char [] topicname, byte [] data, int datalen, int flags) for sending unicast immediate messages where both target and topicname are character arrays.

    • LBMContext sendc(char [] topicname, byte data, int datalen, int flags) for sending multicast immediate messages where the topicname is a character array.

    • LBMContext sendTopicless(byte [] data, int datalen, int flags) for sending topicless multicast immediate messages.

    • LBMContext sendTopicless(String target, byte [] data, int datalen, int flags) for sending topicless unicast messages using a string as the target.

    • LBMContext sendTopicless(char [] target, byte [] data, int datalen, int flags) for sending topicless unicast messages using a char [] as the target.

    • LBMMessage char [] sourceAsCharArray() for returning the source of a message as a character array.

    • LBMMessage char [] topicNameAsCharArray() for returning the topicname of a message as a character array.

    • LBMMessage char [] originalSourceAsCharArray() for returning the original source (if message was from LBM Gateway) as a character array.



39.1.2. Bug Fixes

  • Corrected a problem with fragmented MIM messages sent to a topic and received by a receiver configured for Arrival Order ( mim_ordered_delivery = 0). The MIM message fragments were not properly delivered to the topic receiver.

  • Clarification: In the toString method for the Java and .Net LBMSDMRawTimestamp object, the value returned by LBMSDMRawTimestamp is not intended to be a floating point representation of the time. The value is simply formatted as seconds.microseconds.

  • Added support on HP-UX for the EAGAIN error during message sends by treating it as an EWOULDBLOCK.

  • Corrected a problem with the LBM Gateway that caused the LBM Gateway to assert after receiving a topic leave message from a receiver shutting down normally. Now the LBM Gateway does not assert or deadlock on normal receiver shutdowns.

  • Corrected a problem with how the length passed to lbm_transport_source_parse() and lbm_transport_source_format() was interpreted. The incorrect interpretation caused these functions to return an error.

  • Corrected an output labeling problem with lbmmon.cs and lbmmon.java. LBT-RM receiver datagram statistics were displayed as LBT-RU statistics.

  • Corrected errors in the source string of the lbm_src_transport_stats_lbtru_t structure. Statistics were reported correctly, but the source was not properly identified. This error has also been observed and corrected for Immediate Messaging source statistics.

  • Corrected a problem with the LBMMON API the resulted in several fields in the LBT-RM and LBT-RU receiver statistics to be handled improperly.

  • The lbmaux library APIs for loading attributes directly from 29West Configuration Files was updated to use common code with the LBM library. This resolves a problem where some configuration options were not parsed correctly in lbmaux library APIs but parsed correctly in LBM.

  • Fixed a potential deadlock when context creation fails for an embedded mode context using Microsoft Windows Completion Ports.

39.1.3. Known Issues

  • 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. 29West is investigating this issue.

  • Shutting down a source-side LBM Gateway with Control-C can cause the Gateway to become dead locked. 29West is investigating this issue.

  • If a source LBM Gateway was shutdown and then the receiving Gateway was shutdown as quickly as possible while still carrying traffic, a fatal assert occurs. (MUL_FATAL_ASSERT(Table!=NULL);) 29West is investigating this issue.

  • With LBM 3.6 we have seen increased memory utilization in varying degrees across all platforms. This increase can be mitigated by the use of SmartHeap. 29West is working to decrease this memory utilization.

  • When turning on Automatic Monitoring, be sure that your application does not have any existing lbmmon monitoring capability active. Using both Automatic Monitoring and lbmmon functions results in confusion with internal monitoring fields and pointers. This issue will be addressed in a future release.

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