KBMMW 4.70.00 发布

We are happy to announce the release of kbmMW v. 4.70.00
Professional and Enterprise Edition.

kbmMW continues to set the bar for what an n-tier product must be
capable of in the real world!

New stuff
=========
- Added support for marshalling and demarshalling generic TDictionary
  descendants.
- Added native LZH support including new TkbmMWLZHCompression component.
   Notice that LZH compression gives good compression, but at a cost of
   CPU cycles. Thus requests per second will be drastically limited.
   For this reason, its best to use the compression on a separate
   transport accessible only by devices that require compression, and
   leave other devices communicate via a server transport that is not
   compressed.
   As the LZH compression is in native Pascal code, it should compile
   for IOS/Android too.
- Added support for tentatively pushing messages to a queue. The
   message is not available for pop, until the push has been committed.
   Alternatively the push can be rolledback.
- Added support for streaming true native int64 in
   TkbmMWBinaryStreamFormat. Upped the stream version to 47000. Its
   still backwards compatible.
- Added multilevel congestion support and filtering on message queues.
   CongestionPriority is used for determining which messages to drop
   (all from this priority and below) when CongestionThreshol has been
   reached. CongestionThreshold is now considered the last barrier of
   defence for filtering out both low and higher priority messages.
   CongestionPriorityLow and CongestionThresholdLow is a new congestion
   barrier added to filter out low priority messages.
- Added TentativelyPushedMessages and renamed PoppedMessages to
   TentativelyPoppedMessages to message queues.
   Returns number of tentatively (and thus not visible) pushed
   messages, and already popped but not committed messages.
- Added support for read/write float and double data, little endien and
   big endian in TkbmMWMemoryStream.
- Added Swap16, Swap32, Flip16, Flip32, Flip8 to TkbmMWPlatformMarshal.
- Added PassedTime to TkbmMWTiming. Same as HasPassedTime but returns
   new base time.
- Added kbmMWHashString64 and kbmMWHashWideString64. Renamed old
   kbmMWHashString and kbmMWHashWideString to kbmMWHashString32 and
   kbmMWHashWideString32. Calculates 32 and 64 bit versions of FNV-1A
   hashes.
- Added kbmMWSubjectStartsWith to kbmMWSubjectUtils.pas
- Added support for using IOS/Android native logging when using
   kbmMWDebug features.

Changes/minor additions
=======================
- Updated SQLiteServer and Client samples to allow selection of
   compression.
- Improved TCPIP Indy client messaging transport disconnection.
- Changed statistics timestamps to (potential) ns precision.

Fixes
=====
- Fixed buffer overrun in TkbmMWStringList.SetTextStr.
- Fixed bug related to XE7 and field lifecycle on error table.
- Fixed CPU cores pegged at 99% by making use of TLightweightEvent
   optional on XE3 and up.
   Now default is disabled and TEvent is used instead.
   Reason is that it has shown to be unstable on loaded systems getting
   into endless spinwaits, hogging all CPU cores.
- Fixed A/V when nodes are missing in streamed
   TkbmMWXMLAuthorizationStorage data upon load.
- Fixed field ownership in TkbmMWXMLStreamFormat and
   TkbmMWJSONStreamFormat.
- Fixed incorrect JSON escaping forward slash.
- Fixed GetAsStream in TkbmMWJSONNative.
- Fixed missing platform attributes.
- Fixed kbmMWExplode for NextGen compilers.
- Fixed kbmMWSafeString for NextGen compilers.
- Fixed kbmMWExtractParameter for NextGen compilers.
原文地址:https://www.cnblogs.com/xalion/p/4307904.html