红联Linux门户
Linux帮助

Qpid Proton 0.8发布

发布时间:2014-11-07 11:32:57来源:红联作者:empast
Qpid Proton 0.8 发布,此版本包括大量的 bug 修复,现已提供下载。更新内容请看发行说明:

Bug 修复

[PROTON-436] - pn_data_dump is broken for complex types

[PROTON-474] - Incorrect mapping of TTL to JMSExpiration in JMS InboundTransformer

[PROTON-516] - [proton-c] Dispatcher frame buffer set to peer's max frame size.

[PROTON-543] - Frame Parser error if input stream is read before SASL is initialized in the transport

[PROTON-576] - proton-j: codec support for UTF-8 encoding and decoding appears broken?

[PROTON-582] - Perl language bindings do not properly identify integers from strings when encoding

[PROTON-587] - Proton 0.7 fails to compile with Visual Studio 2008

[PROTON-590] - If Proton receives a frame with an unexpected performative number it will SEGV

[PROTON-592] - Python test function common _ready() fails on windows

[PROTON-593] - Scripts for running java examples contain old paths

[PROTON-595] - Python test function MessengerApp.start fails on Windows

[PROTON-596] - There is no equivalent to 'config.sh' for windows

[PROTON-602] - Syntax error in perl bindings Data.pm for perl 10.5.1

[PROTON-603] - Python testReclaimCredit fails on Windows

[PROTON-604] - Unable to display usage information for perl example send.pl

[PROTON-606] - Python testReclaimCredit exposes test server messenger hang on windows

[PROTON-607] - Perl recv.pl shows error if a message has no subject

[PROTON-608] - seg fault if attach is sent before open and begin

[PROTON-610] - proton-c: messenger doesn't honour an advertised remote idle timeout

[PROTON-611] - [proton-c] transport buffer increased to peer's max frame size if initial output_size is not enough

[PROTON-615] - Cmake binding dependencies wrong (building python binding always; no dependency for include/proton/cproton.i)

[PROTON-616] - Use Symbol keys in message annotations

[PROTON-617] - Proton map/hash entries can disappear

[PROTON-618] - [proton-j] some of the .java source files have crlf line endings, most dont

[PROTON-619] - The heuristics in config.sh don't work for all build directory locations

[PROTON-624] - Corrupted payload with redelivered messages when transformer is jms

[PROTON-625] - prevert looping when map->load_factor exactly equals load

[PROTON-627] - Use Symbol keys in delivery annotations

[PROTON-631] - Potential null pointer exception if 'x-opt-jms-type' annotation is present but has a null value.

[PROTON-641] - pn_connection_t leaked when links not closed

[PROTON-646] - Perl message does not have the correct type when the body is a boolean with a FALSE value

[PROTON-648] - Memory leaks on aborted connections.

[PROTON-655] - URL parser fails to parse ActiveMQ dynamically generated address

[PROTON-656] - pn_transport_close_{head, tail} no longer return an error code on framing error.

[PROTON-660] - Fix openssl.c build on windows

[PROTON-661] - pn_message_save_* do not return correct message size when PN_OVERFLOW

[PROTON-666] - TransactionalState applied to indicate the txn-id before sending has no effect on the outgoing transfer frames

[PROTON-669] - proton-c: Messenger abstracts away connections, but it would be useful to fail fast for auth errors etc.

[PROTON-670] - proton-c: Messenger doesn't provide accessors for the links it is using

[PROTON-671] - proton-c: Messenger doesn't provide a way to set the link settlement modes it uses

[PROTON-672] - proton-c: Messenger doesn't support setting the transport tracer

[PROTON-673] - proton-c: Messenger doesn't provide a way to obtain the remote idle timeout

[PROTON-674] - proton-c: Messenger doesn't provide a way of setting the TTL on a subscription

[PROTON-675] - proton-c: Messenger doesn't provide a way of setting the SSL peer authentication mode

[PROTON-676] - proton-c: transport layer SSL failures not propagated back to Messenger in pni_connection_readable

[PROTON-677] - proton-c: transport incorrectly detaches all links with closed=true by default

[PROTON-679] - proton-c: add a "manual" link credit mode to Messenger

[PROTON-680] - proton-c: Messenger doesn't provide a way of obtaining link or delivery information

[PROTON-684] - Restrict IOCP enlistment to pn_selector_t usage scenarios in Windows

[PROTON-685] - calling free() on session with multiple Sender or Receiver links leads to ConcurrentModificationException

[PROTON-686] - va_copy is C99 (not C89) and is not supported by the Microsoft Visual Studio C compiler before VS 2013

[PROTON-687] - Memory corruption in proton-test

[PROTON-688] - pn_transport_unbind() doesn't reset all relevant trasnport state

[PROTON-689] - Python binding does not expose transport error details

[PROTON-690] - Fix Windows components for new Proton object/class refcounting mechanisms

[PROTON-694] - splitting contrib/JMSMappingOutboundTransformer's encoding and transformation

[PROTON-695] - New URL code causing invalid reads/writes according to valgrind

[PROTON-698] - ClassCastException occurs when testing equality of Binary instance against a different type of Object

[PROTON-699] - Messenger installed examples send,recv do not compile

[PROTON-701] - Windows ctest fixes for proton-c

[PROTON-702] - Windows proton-c selector can forget timer events

[PROTON-704] - delivery-count is set incorrectly during outbound transformation

[PROTON-706] - CMake fails - get_filename_component unknown component DIRECTORY

[PROTON-708] - C proton driver needs a getter function to access the pn_error so it can be cleared

[PROTON-709] - [proton-c] Windows 64-bit transport issue

[PROTON-712] - Seg fault due to missing NULL return value check of getprotobyname

[PROTON-714] - SSL buffer overflow with large frames

[PROTON-715] - [contrib/proton-jms] delivery-count is set incorrectly during Native outbound transformation

[PROTON-716] - Reject SSL clients that attempt to use SSLv3

[PROTON-717] - Disable SSL compression

[PROTON-718] - disable SSL v3 for proton-j

[PROTON-719] - Disable SSL v3 for Windows SChannel

[PROTON-720] - [Windows IO] Prints warning string as %d

[PROTON-724] - pn_transport_close_head doesn't generate the expected PN_TRANSPORT_HEAD_CLOSED event

[PROTON-725] - pni_parse_url does not properly handle Base64 in URL

[PROTON-728] - transport aborts when delivery ids are out of sequence

改进

[PROTON-429] - pn_bytes(size_t size, char *start) needs a const on the 'start' argument

[PROTON-465] - FindPerlLibs.cmake module in Proton behaves differently to Qpid's Perl detection

[PROTON-558] - Make friendly protocol field logging optional for low-memory devices

[PROTON-583] - Can move a bunch of things from .data to .rodata by adding const

[PROTON-585] - Can improve memory use by rearranging structs to eliminate padding

[PROTON-591] - There are two large, mostly empty tables used for dispatching incoming frames

[PROTON-597] - Improve the memory footprint of TrasportImpl

[PROTON-613] - update java messenger 'send' example behaviour to be more in line with the other language examples

[PROTON-620] - Remove unnecessary wrapped types from proton low level bindings

[PROTON-628] - split out usage of the buffer in MessageImpl#decode() to its own method

[PROTON-640] - IO completion port Windows IO for Proton

[PROTON-642] - SASL Servers need to be able to optionally handle clients that don't use SASL

[PROTON-647] - Implement an Event.copy or clone method

[PROTON-650] - proton-dump should include a man page

[PROTON-653] - Expose the version and build details for Proton in the Perl bindings.

[PROTON-657] - OSX: build proton with homebrew openssl

[PROTON-664] - add pom profile to allow creating souces jar during non-release builds.

[PROTON-668] - Document Proton-c IO restrictions for 0.8 release

[PROTON-693] - Python Url class to wrap C function pni_parse_url

[PROTON-705] - Windows: Allow C based tests to run directly from ctest/Visual Studio without having to set up environment

[PROTON-711] - [contrib/proton-jms] add support to message transformers for more efficient destination type annotation value

新特性

[PROTON-581] - SSL/TLS support for Proton-c on Windows

[PROTON-630] - [python] Add a setup.py for installing the python bindings via PyPi

[PROTON-651] - Export the proton version numbers via the bindings.

Apache Qpid (Open Source AMQP Messaging) 是一个跨平台的企业通讯解决方案,实现了高级消息队列协议。提供了 Java、C++ 两种服务端版本以及 Java、C++、.NET、Python和Ruby语言的客户端。

其中C++版本的服务器端具备高性能/低消耗以及RDMA支持,可运行于Windows/Linux和Solaris平台;而Java版本的服务器则支持JMS,以及各种平台。

关于RDMA的相关知识:

RDMA(Remote Direct Memory Access)是通过网络把资料直接传入某台计算机的一块存储区域,不需用到多少计算机的处理功能。普通网卡集成了支持硬件校验和的功能,并对软件进行了 改进,从而减少了发送数据的拷贝量,但无法减少接收数据的拷贝量,而这部分拷贝量要占用处理器的大量计算周期。普通网卡的工作过程如下:先把收到的数据包 缓存到系统上,数据包经过处理后,相应数据被分配到一个TCP连接。下一步,接收系统再把主动提供的TCP数据同相应的应用程序联系起来,并将数据从系统 缓冲区拷贝到目标存储地址。以太网已能满足高性能应用对网络吞吐率的要求,具备高吞吐率和成本优势,以太网技术要跟高性能网络应用挂钩,主要解决的问题是 应用吞吐率。通常情况下,系统持续在主机CPU中处理以太网通信需要占用CPU资源。CPU速率会制约网络数据率;持续处理这类通信会导致CPU性能降 级;对多端口千兆位或单端口10千兆位以太网,这类问题会变得更为严重。

软件详情:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12313720&version=12326950

下载地址:http://qpid.apache.org/releases/qpid-proton-0.8/index.html

来自:开源中国社区
文章评论

共有 0 条评论