kbmMW 4.00 正式版发布了

简介: 呵呵,说曹操,曹操到。昨天刚写完kbmMW 的配置,今天kbmMW 4.00 正式版就发布了。 We are happy to announce the immediate availability of kbmMW Enterprise Edition v.

呵呵,说曹操,曹操到。昨天刚写完kbmMW 的配置,今天kbmMW 4.00 正式版就发布了。

We are happy to announce the immediate availability of kbmMW Enterprise Edition v. 4.00.00.

This is a major release with many new features like Remote Desktop,
JSON and JSON dataset streaming, new advanced file queue and buffered file streams and much much more.
Please check further down for more detailed info about new features.

kbmMW Enterprise Edition v4.00.00 is available for immediate download for all holders of a valid SAU (Service and Update) subscription.
Please visit: https://portal.components4developers.com and login with your credentials to download.

If your subscription has expired you can purchase additional 12 months SAU periods via our shop
at www.components4developers.com


       Important notes (changes that may break existing code)
       ======================================================
       * kbmMW Enterprise Edition Message Bundling require update of all nodes.

       New stuff
       =========
       - Added message bundling in WIB. To enable, send message with SubjectJeader.QoS value
         KBMMW_TRANSPORT_QOS_BATCHABLE. To force a break between batchable messages, send a message
         with SubjectJeader.QoS KBMMW_TRANSPORT_QOS_PRIMARY_IF_BATCHED.
         PushMessage on queues now have optional argument AUnBatch:boolean=false which if set to true
         will automatically unbatch messages into singular messages on the queue.
         Only messages with equal priority, HopCount, Subject, Data property, MaxHopCount, Hops and Trace can
         be batched. By Setting MaxBatchedCount on SubjectHeader, you can determine how many messages of batchable
         type, can be batched into one.
       - Added Delphi XE2, C++Builder XE2 support.
       - Added support for Win32, Win64, MacOS.
       - Added Remote desktop components and samples for Win32 (not tested with Win64).
       - Added native full JSON support. Check new kbmMWJSON unit.
       - Added JSON dataset stream format. Check new kbmMWJSONStreamFormat unit.
       - Added Lazarus support. No wizard support at the moment.
       - Added RemapOptions and OnRemapFielddef event to metadata components. It
         can be used for specifying how field type remapping should happen.
         mwroStringAsUnicode - All normal string fields are treated as unicode string fields.
            It covers ftString, ftFixedChar that is mapped to ftWideString, and ftMemo that
            is mapped to ftWideMemo.
         mwroOracleAsRegular - ftOraBlob is mapped to ftBlob, and ftOraClob is mapped to ftMemo.
         mwroDateTimeAsDate - ftDateTime is mapped to ftDate.
       - Added ParamNameFix to metadata components to control if kbmMW should remove "illegal"
         characters from the parameter name. Default true.
       - Added functionality so macros on X connection pool is expanded after macros on
         chained connection pool.
       - Added support for CommandTimeOut property in ADOX adapter.
       - Added Cookies property to TkbmMWHTTPTransportStreamHelper.
       - Added NoCache property to TkbmMWHTTPTransportStreamHelper.
       - Added support for redirection/loadbalancing using HTTP protocol in
         TkbmMWHTTPTransportStreamHelper.
       - Added support for template parameters in TkbmMWxxxHTTPService and
         TkbmMWHTTPServiceDefinition via property Parameters.
         Control when parameters should be expanded via
         ParametersEnabledFor property. Control format of template parameter
         via ParameterType (mwtvtStandard: [!--PARNAME--!] / mwtvtHTML: <!-- PARNAME  -->)
         PreserveParameterWhenUndefined:boolean controls if the parameter should be
           preserved if a parameter with that name cant be found and thus the parameter
           not be expanded.
       - Added  function FileCategoryFromMimeType(const AMimeType:string):TkbmMWHTTPFileCategory
         to TkbmMWxxxHTTPService.
       - Added
         function Request(ARequestTransportStream:IkbmMWCustomRequestTransportStream; AResponseTransportStream:IkbmMWCustomResponseTransportStream; const AServiceName,AServiceVersion:string; var AStateID:integer; AClientID:TkbmMWClientIdentity; AInStream,AOutStream:TStream; const AFunc:string;const Args:array of variant):variant;
         function Request(const AServiceName,AServiceVersion:string; var AStateID:integer; AClientID:TkbmMWClientIdentity; AInStream, AOutStream:TStream; const AFunc:string; const Args:array of variant):variant;
         function Request(const AServiceName,AServiceVersion:string; AClientID:TkbmMWClientIdentity; AInStream, AOutStream:TStream; const AFunc:string; const Args:array of variant):variant;
         to TkbmMWServer to make it easy to make a server internal request to a service.
       - Added keep alive type Ping/Pong to TkbmMWServer. From a client call SendPing(value) where value is
         an optional value that will be send back to you. Result of the SendPing call is an array
         consisting of __PONG at index 0, provided argument (or null) at index 1, the servers UTC offset
         (in seconds) at index 2, and the servers UTC time at index 3.
       - Added advanced high performance paged stream buffering: TkbmMWBufferedStream.
       - Added TkbmMWFileStream that allows for providing more flags than regular TFileStream.
       - Added TkbmMWBufferedFileStream that combines the above to bypass Windows file caching
          and instead use internal caching mechanism that allows finetuning to a specific
          use pattern, thus signtificantly improving performance. Will internally access
          file on disk directly and read/write sectorbased.
       - Added PurgeAndDisconnect method to TkbmMWCustomSAFClientTransport.
          Can be called with parameter that defines which queues (inbound/outbound) that should
          be purged before the connection is closed and how. It can be set to process or flush
          Default is  [mwpacProcessInbound,mwpacProcessOutbound].
       - Added MoveToStart/MoveToEnd in TkbmMWDblLinkList.
       - Added LocateFirstPrioritized and LocateLastPrioritized to TkbmMWPriorityDblLinkList.
       - Added DeleteItem to TkbmMWCustomHashList.
       - Added LoadFromBytes to TkbmMWMemoryStream.
       - Added Append(const AChar:char) to TkbmMWStringBuilder.
       - Added global methods:   function kbmMWUTCLocalOffset:integer;
                               function kbmMWGetCurrentTimeNS:int64;
                               function kbmMWInterlockedIncrement(var AValue:integer):integer;
                               function kbmMWInterlockedDecrement(var AValue:integer):integer;
                               function kbmMWInterlockedIncrement64(var AValue:int64):int64;
                               function kbmMWGetFileSize(const AFilePath:string; var ASize:cardinal; AHandle:THandle = 0):boolean;
                               function kbmMWGetFileInfo(const AFilePath:string; var ASize:Cardinal; var ACreateTime:TDateTime; var AModifyTime:TDateTime; var AAccessTime:TDateTime; var AAttribs:cardinal; AHandle:THandle = 0):boolean;
       - Added global kbmMWFormatSettings: TFormatSettings that is used when format settings are needed in kbmMW.
       - Optimized TkbmMWMemoryStream.CopyFrom when copying from other TkbmMWMemoryStream.
       - Added TkbmMWXMultiDBConnectionPool which is like a regular TkbmMWXConnectionPool, but
          supports handling multiple databases at the same time.
       - Improved TkbmMWCustomStreamStorage with regards to performance, verify and repair.
       - Added SampleSizes to TkbmMWCustomStreamStorage which scans a number of non deleted segments to
          determine max size of metadata header and content. Those values can be used as indicators when
          optimizing disk I/O when using a TkbmMWBufferedFileStream for the stream storage.
       - Added new methods to TkbmMWCustomMessageQueue:
            procedure DeleteMessages(const ASubjectMatch:string);
            procedure DeleteMessages(const APriority:byte; const AMatch:TkbmMWPriorityMatch = mwpmEqual);
          They will search and delete messages that have a certain subject (allows for subscription wildcards)
          or a certain priority level.
       - Changed TkbmMWFileStoreMessageQueue to use TkbmMWBufferedFileStream, for optimum performance.
          AutoTuneCache:boolean controls if the file queue should try to auto estimate cache for best performance.
          ScanPageSize:integer defines the page size of cached pages used while scanning a file. It should normally
            be around the expected size of the generally largest metadata header segments.
          PageSize:integer defines the page size of cached pages used while accessing the file in normal non scan mode.
            It should normally be around the expected size of the generally largest content size + metadata size.
          PagesInCache controls how many pages of above sizes that max can be cached in memory.
          Memory used for cache depends on the above numbers and sector size of file system that contains the queue,
          If PageSize, ScanPageSize and/or PagesInCache is 0, a regular TFileStream is used instead with Windows
          standard caching mechanism.

Changes/minor additions
       =======================
       - Deprecated mwucStringsIsUnicode in UnicodeOptions. Instead use
         mwroStringAsUnicode in RemapOptions.
       - Updated internal cache hit/miss counters to be int64 instead of longint.
       - Updated TkbmMWLocalStats to use Int64 for its internal counters.
       - Updated TkbmMWServer to use Int64 for its internal counters.
       - Improved HTTP response generation in TkbmMWHTTPTransportStreamHelper.
       - Added support for ICO as a graphics file in TkbmMWxxxHTTPService.
       - Added mwdtApplication as a debug type. It can be used for application specific debugging/logging.

       Fixes
       =====
       - Fixed bug when requesting service from within same thread.
       - Fixed TkbmMWHTTPTransportStreamHelper to handle HTTP payloads correctly.

 

看看,变化还真不少。

目录
相关文章
|
8月前
|
传感器 数据采集 人工智能
数字孪生项目开发的流程
数字孪生不仅是3D可视化,更是融合IoT数据、物理仿真与业务逻辑的系统工程。涵盖需求定义、数据采集、建模渲染、双向映射、AI仿真到集成部署六大阶段,支撑智慧工厂、城市等场景的实时监控与智能决策。(239字)
|
安全
电机控制中对地的处理
1.当电路中有电机时,尤其是电压比较高的电机,一定要将控制电和动力电的地隔离开。如果不隔离,电机一启动,控制电路就可能不正常,比如复位、通信不正常等。 2.如果是有单独的电机驱动,那么主控板和驱动器的地最好也分开,实在不行也可以共地。
960 0
电机控制中对地的处理
|
存储 缓存 网络协议
|
SQL BI 数据库
如何在 SQL Server 中使用 `CONCAT_WS`
【8月更文挑战第10天】
767 3
如何在 SQL Server 中使用 `CONCAT_WS`
|
SQL 关系型数据库 MySQL
宝塔账号密码忘记了怎么办
宝塔账号密码忘记了怎么办
|
数据采集 JSON 数据可视化
PLC 西门子s7-200 轻松数据上云
​ 在在工业场景中,经常会使用到PLC进行各种设备的数据采集和控制。本教程介绍使用海创边缘网关配置s7-200 smart跑马灯场景效果,并实现数据上传海创物联网平台和阿里云物联网,实际项目中可能更多是跟MES相关系统进行对接,但技术逻辑相同,可参考!
7790 0
|
数据安全/隐私保护 智能硬件
智能家居系统入门指南
随着科技的飞速发展,智能家居系统已不再是遥不可及的梦想。本文将带你走进智能生活的世界,从基础概念到实用设备,再到搭建步骤和常见问题解答,全方位解析如何打造一个舒适、便捷、高效的智能居家环境。让我们一起探索,如何通过简单的操作,实现家居生活的智能化升级。
|
存储 SQL JSON
Hologres技术揭秘,JSON半结构化数据的极致分析性能
本文将会揭秘Hologres JSONB半结构化数据的技术原理,实现JSON半结构数据的极致分析性能。
3788 59
Hologres技术揭秘,JSON半结构化数据的极致分析性能
|
监控 数据可视化 算法
基于朴素贝叶斯算法的微博舆情监控系统,flask后端,可视化丰富
本文介绍了一个基于朴素贝叶斯算法和Python技术栈的微博舆情监控系统,该系统使用Flask作为后端框架,通过数据爬取、清洗、情感分析和可视化等手段,为用户提供丰富的舆情分析和监测功能。
740 0