We are happy to announce v5.04.10 of our popular middleware for Delphi and C++Builder.

If you like kbmMW, please let others know! Share the word!

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

This release is primarily bugfix release, but does also contain a number of new features:

  • Local and remote checksum support for file service and client
  • Scheduler improvements with support for run of a batch of multiple parallel child jobs
  • AMQP improvements

Please look in the end of this post for a detailed change list.

Professional and Enterprise Edition is available for all with a current active SAU. If your SAU has run out, please visit our shop to extend it with another 12 months.

CodeGear Edition is available for free, but only supports a specific Delphi/Win32 SKU, contains a limited feature set and do not include source.

Please visit https://portal.components4developers.com to download.


kbmMW is the premiere n-tier product for Delphi, C++Builder and FPC on .Net, Win32, Win64, Linux, Java, PHP, Android, IOS, embedded devices, websites, mainframes and more.

Please visit http://www.components4developers.com for more information about kbmMW.


Components4Developers is a company established in 1999 with the purpose of providing high quality development tools for developers and enterprises. The primary focus is on SOA, EAI and systems integration via our flagship product kbmMW.

kbmMW is a portable, highly scalable, high end application server and enterprise architecture integration (EAI) development framework for Win32, ..Net and Linux with clients residing on Win32, .Net, Linux, Unix, Mainframes, Minis, Embedded and many other places. It is currently used as the backbone in hundreds of central systems, in
hospitals, courts, private, industries, offshore industry, finance, telecom, governements, schools, laboratories, rentals, culture institutions, FDA approved medical devices, military and more.

5.04.10 Nov 3 2017

– Fixed bugs and improved XML<>ON conversion.
– Fixed bugs in TkbmMWConfiguration.

Changes/minor additions
– Added KeepAliveTimeout and KeepAliveInterval to Indy TCP server transports

5.04.00 Nov 2 2017

New stuff
– Added OnAccessException event to TkbmMWCustomFileClient.
– Added Checksum, ChecksumEx, SameFile, SameFileEx, LocalChecksum to TkbmMWCustomFileClient
Checksum(Ex) and LocalChecksum use SHA256 to calculate checksum.
SameFile(Ex) calculates checksum on both local and remote file and compares those.
On platforms supporting TkbmMWScheduler, the calculations are run in parallel.
– Added WithObject and WithInterface to TkbmMWScheduledEvent to allow
piggybacking additional data to events.
– Added additional overloaded SynchronizedAfterRun and AfterRun for anonymous
procedures to TkbmMWScheduledEvent.
– Added WhenException methods to TkbmMWScheduledEvent to allow handling exceptions.
– Added WaitRun(s) to TkbmMWScheduledEvent to allow pausing a thread until an
event has finished running.
– Added additional Run/RunNow methods to TkbmMWScheduler to allow for scheduling
multiple parallel jobs that will be run under control of one scheduled event.
Only when all jobs has run, the scheduled event is considered to have run.
– Added mwxonoPreferAttributes and mwxonoAutoIdentifyArrayElement to
mwxonoPreferAttributes controls if conversion from object notation
should prefer defining XML node values as attributes or as elements.
mwxonoAutoIdentifyArrayElement controls if conversion from object notation
should include index (i) attribute to precisely identify a row in an array.
– Updated many database adapters to prevent certain leaks on exceptions.
– Added MaxFileSize to TkbmMWFileServiceDefinition to define maximum size of file
that is allowed to be received by the server. Default no limit.
– Added TkbmMWVirtualConfigurationStorage to kbmMWConfiguration unit.
It allows for getting and storing configuration from any type of medias.
– Added TkbmMWMarshal.Bytes2Memory function in kbmMWGlobal.
– Added ToString to IkbmMWAutoValue.
– Added kbmMWExplode function to kbmMWGlobal. It allows for exploding
strings with start and end tags as delimiters.
– Added PrettyChar2String function to IkbmMWLogFormatter.
– Made Char2PrettyChar function in IkbmMWLogFormatter implementers public.
– Added support for detecting version of databases for some databases in
– Added TkbmMWThreadONObject and TkbmMWThreadONArray to kbmMWObjectNotation.
They allows for multithreaded access to the same base object notation object or array.
– Added additional support for CoInitialize and CoUnInitialize for UNIDac adapter.
– Added BasicProperties property to IkbmMWAMQPChannel.
– Updated database adapter wizard to generate up to date code.
– Improved stability of TkbmMWFileService, TkbmMWFileClient and TkbmMWFilePool.
– Improved error handling in kbmMWORM.

– Fixed bugs in TkbmMWScheduler.
– Fixed compilation errors in AMQP on some IDE SKU versions.
– Fixed header properties not available under some circumstances in AMQP.
– Fixed bugs in TkbmMWAuthorizationManager.
– Fixed bugs in kbmMWConfiguration.
– Fixed bugs in kbmMWHTTPUtils resulting in stack overflow.
– Fixed some null handling issues in TkbmMWObjectNotation.
– Removed leftover debug code from TkbmMWBPStringMaskPart.
– Fixed bugs in TkbmMWAMQPChannel.
– Fixed NULL marshalling issue in TkbmMWONNullableMarshal.
– Fixed kbmMWServer not instantiating minimum number of services at startup.
– Fixed IDE Debug visualizers.

Changes/minor additions
– Improved GetStreamEx and PutStreamEx to allow for retry on failure in TkbmMWCustomFileClient.
– Generally improved exception and error handling in TkbmMWCustomFileClient.
– Improved PutStreamEx to include offset and total file size in server call.
– Improved TkbmMWSQLiteMetaData to support obtaining version meta data and index info
from older SQLite versions (pre 3.8.3)


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.