[openamq-dev] OpenAMQ 1.2c3 released

Martin Lucina mato at imatix.com
Fri Aug 24 21:34:07 CEST 2007


All,

OpenAMQ 1.2c3 is now available.

This release is the result of almost 6 months work since OpenAMQ 1.2c1
and contains many fixes and enhancements.

We recommend that all users upgrade to the new release. Please see the
attached release notes for detailed information on changes and known
issues you may encounter when upgrading.

Source packages of OpenAMQ 1.2c3 are now available at the following
location:

UNIX line endings: http://www.openamq.org/download/OpenAMQ-1.2c3.tar.gz
Windows line endings: http://www.openamq.org/download/OpenAMQ-1.2c3.zip

Enjoy!

Changes since OpenAMQ 1.2c1:
(See the release.txt file in the package for the full Release Notes):

1.2c3 - 2007/08/24
---------------------------------------------------------------------

Summary of changes:

The "packio" configuration option has been removed. This was a workaround to
support systems without working scatter/gather socket I/O which is not
necessary on any of our supported platforms (Linux, Solaris, Windows), and was
causing other issues with the transport of large messages. 

The "poll_frequency" configuration option has been replaced by an adaptive
algorithm that provides optimal performance without the need for tuning by the
user.

Known issues:
  BASE2-282    ASL: Correct timeout handling during connection setup/teardown

               Does not affect normal operation, only corner cases with 
               deliberately misbehaving clients.

    AMQ-550    Refactor server shutdown handling to close all connections
               cleanly

               May cause the server to loop on shutdown in combination with
               a misbehaving client (see BASE2-282), or cause issues with a
               clean shutdown of peering connections. In either case, sending
               the server a second SIGINT will cause it to shut down normally.

    AMQ-553    Fanout exchange doesn't dispatch messages after binding
               recreation

    AMQ-554    Direct exchange doesn't work with empty routing key

    JAMQ-78    Make heartbeat configurable for peering connections

    JAMQ-97    The max_memory_mb broker setting is not functional when used
               with the default direct allocator

               Please do not rely on the max_memory_mb setting to limit the
               total amount of memory used by the server, this is not currently
               working correctly.

None of the above should impact a normal production environment. We hope to
release fixes for these with the "ultra-stable" OpenAMQ 1.2d0 release,
tentatively scheduled for the 7th of September.

Full list of fixes:
  BASE2-279    Correctly set socket options (TCP_NDELAY, SO_SNDBUF, SO_RCVBUF)
               in SMT/ASL

  BASE2-280    ASL: remove packio

    JAMQ-96    Kill command for certain connections doesnt work.
               (Duplicate, already fixed in OpenAMQ 1.2c2 by JAMQ-87)

  BASE2-277    Review SMT socket polling strategy (poll_frequency)

  BASE2-281    SMT doesn't always trigger master thread when threads go idle

    BASE-59    Add MT build support for AIX with xlc to 'c' script

1.2c2 - 2007/07/19
---------------------------------------------------------------------

Internal prelease for testing before 1.2c3 public release.

Summary of changes:

JAMQ-87 is a refactoring of the ASL agent state machines, and either directly
or indirectly fixes or obsoletes the fix for AMQ-542, AMQ-549, JAMQ-32,
JAMQ-54, JAMQ-57, JAMQ-71, JAMQ-73, JAMQ-79, JAMQ-82 and JAMQ-83. 

As part of this refactoring we have explicitly removed support for more than
one protocol channel on a connection, since there is no direct requirement for
this and the code was problematic and untested.

WireAPI and broker error handling and reporting is now greatly improved and
more robust.  The generic "unexpected disconnection" message has been removed,
and the broker and client will report the specific cause of disconnection
(protocol error, network error, etc.).

JAMQ-94 fixes some non-critical bugs in the way SMT handles error conditions on
sockets, which were discovered during the work on JAMQ-87.

IMPORTANT NOTES:

A major improvement has been made to the way large message contents (>1 frame)
are processed in the broker and WireAPI layers, which will result in better
connection stability under high broker or client load. 

In order to take advantage of this, please ensure that you are running the
broker with the "packio" setting turned *off*. The "packio" functionality is
likely to be removed in the next release, since it interferes badly with
multi-frame messages.

The "read timeout" and "write timeout" broker and client configuration settings
have been removed since they are no longer required.

The WireAPI configuration file has been renamed from amq_wireapi.cfg to
wireapi.cfg.

The default "poll frequency" setting has been changed from 0 to 256, and the
WireAPI configuration now also includes "poll frequency".  However, for correct
behaviour, we encourage users to keep the default setting (256) and to *ensure*
this setting is not manually set to 0.  We are testing a new polling algorithm
which will completely replace "poll frequency" in the next release.

Known issues:

The broker shutdown process has been modified to initiate a clean shutdown of
connections when the broker receives a SIGINT or SIGTERM. This has not yet been
intergrated into the console shutdown code, and this change may have adverse
impact on HA failover in situations where a failover is to be triggered by
shutting down a running broker. We will evaluate the value of this change and
provide a definite solution in the next release.

Due to a programming error, the "tcp sndbuf" and "tcp rcvbuf" broker
configuration settings have no effect.  This will be fixed in the next release.

The documentation on www.openamq.org has not been updated to reflect the
changes in this release.  

Full list of fixes:
    AMQ-542    Handle invalid protocol version in protocol header correctly

    AMQ-547    Wrong operator precedence assumed in amq_queue_message_count can
               lead to crash

    AMQ-548    Set packio default to 0

    AMQ-549    AMQ client API not able to support more than single connection

    BASE-57    OSX porting - smt 'thread_create' function name clash

  BASE2-266    "new style" iterator lists are inconsistent with the rest of iCL
               and should be removed

  BASE2-268    Ctrl+C leads to looping forever

  BASE2-269    Clean up PAL and add read function

  BASE2-270    smt_signal has allocation (link) issues

  BASE2-271    Remove support for nested contents

  BASE2-273    Multiple calls to _destroy on sync objects don't handle links
               correctly

  BASE2-274    PAL scripts need to be able to set config options

  BASE2-276    Client uses 100% CPU on SIGINT while attempting to connect

  BASE2-278    Automate sharing of thread context

     FOR-16    c.bat and pal.bat do not accept file names with extensions

     FOR-17    apr_socket_opt_get: Implement APR_SO_ERROR

    JAMQ-32    E: Illegal sequence: Write request follows Close request

    JAMQ-54    ASL: Design flaw in heartbeat algorithm

    JAMQ-57    ASL client layer: Fix heartbeat design flaws

    JAMQ-71    Assertion failure at amq_server:
               smt_socket_request_by_socket.c:935: smt_socket_request_by_socket_first_:
               Assertion `self' failed.

    JAMQ-73    Assertion with debug build - amq_server: icl_mem_fat.c:695:
               icl_mem_fat_possess_: Assertion `self->tag == 0xFABB' failed.

    JAMQ-79    Design error in client/server agent state machine can block SMT
               engine when sending large contents

    JAMQ-80    PAL: Add support for testing failover

    JAMQ-82    C API needs to report shutdown event properly

    JAMQ-83    amq_client_agent aborts if there are still pending contents in
               input thread and session has already been closed

    JAMQ-84    Need PAL to support generated contents larger than 2MB (the
               current limit)

    JAMQ-85    PAL: <repeat> no longer works outside of <session>

    JAMQ-86    SMT: smt_os_thread in ACTIVE status not polling for socket input

    JAMQ-87    SMT not calling thread catcher in all cases/ASL client trying to
               do socket operations on closed socket

    JAMQ-88    ASL: Remove read_timeout and write_timeout from client agent

    JAMQ-90    Verify OpenAMQ 1.2 HA clustering code meets agreed requirements
               for delivery

    JAMQ-91    SMT: <default> functionality for a <state> not implemented
               correctly

    JAMQ-92    SMT: Add priority attribute to method definition

    JAMQ-93    SMT: Allow a thread to register more than one signal with
               smt_signal_register

    JAMQ-94    SMT not handling poll returning APR_POLLIN with a combination of
               APR_POLLERR or APR_POLLHUP on a socket

    JAMQ-95    amq_server aborts with (smt_socket_request.c 536) Could not find
               specified socket in poll list.

Regards,

--
Martin Lucina
iMatix Corporation
_______________________________________________
amq-gtw mailing list
amq-gtw at amq.imatix.net
http://amq.imatix.net/mailman/listinfo/amq-gtw


More information about the openamq-dev mailing list