KBMMW 4.90.00 发布
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.
4.90.00 November 7 2015
Important notes (changes that may break existing code)
======================================================
- Updated TkbmMWOnMessageToSpoke,
TkbmMWOnMessageToSpokeDeliveryFailed,
TkbmMWOnMessageToSpokeDeliverySuccess events to include the
queue.
New stuff
=========
- Added TkbmMWScheduler in new unit kbmMWSceduler.pas (Ent)
for precise and relaxed event scheduling.
System scheduler are available via Scheduler instance.
Check demo for examples of use.
- Added TkbmMWMemSQL which is an extension to the TkbmMemSQL
class (Ent).
It adds syntax for:
- Defining fieldtypes:
SELECT field1 as 'field1->INT'... The field types can be
INT,VARCHAR2(n),VARCHAR(n),CHAR(n),BOOL,
AUTOINC,FLOAT,NUMERIC,REAL,DATETIME,
DATE,TIME,LARGEINT,INT64,BLOB,GRAPHIC,
CLOB,TEXT(n),CURRENCY,WORD,MEMO,WIDEMEMO,GUID
- Operating on XML and JSON data registered with SQL
component:
SELECT owner AS 'someowner->TEXT(3)',bid,quantity AS
'dato->DATE'
FROM auctions
SUBSET '/alliance/auctions/.*'
ORDER BY bid,owner
SELECT XMLAttr(value,'//datas','name') AS
'name->TEXT(20)', value
FROM data TEXT(XML,'<datas
name="hello"><data><value>10</value></data><data><value>20</value></data>>/datas>')
SUBSET '^/datas/data/$'
- Operating on inline XML:
SELECT value
FROM data
TEXT(XML,'<data><value>10</value><value>20</value></data>')
SUBSET '/data/value'
ORDER BY value
- Operating on inline JSON:
SELECT value
FROM data TEXT(JSON,'{"data":[{"value":10},{"value":20}]}')
SUBSET '/data/.*'
ORDER BY value
- Loading data from external CSV (SF_CSV) or
binary (SF_BIN) files:
SELECT [species no], common_name
FROM biolife FILE(SF_CSV,'.\biolife.csv')
ORDER BY common_name
- Loading data from external XML and JSON files:
SELECT owner,bid,quantity
FROM auctionsfile FILE(JSON,'.\auctions.json')
SUBSET '/alliance/auctions/.*'
ORDER BY bid,owner
- Outputting results as binary (SF_BIN), CSV (SF_CSV), XML
(SF_XML) and JSON (SF_JSON) files:
SELECT fld2 AS Field2, fld3, sum(fld5) AS fld5,
Sum(fld2) AS SomeField1, Sum(fld3) AS SomeField2
FROM table1
GROUP BY Field2, fld3
OUTPUT FILE(SF_JSON,'.\output.json','nodef')
- Outputting results as CSV, XML and JSON text string:
SELECT fld2 AS Field2, fld3, sum(fld5) AS fld5,
Sum(fld2) AS SomeField1, Sum(fld3) AS SomeField2
FROM table1
GROUP BY Field2, fld3
OUTPUT TEXT(SF_XML,'nodef')
Output formats supports various options:
- SF_CSV supports: nodef, quote=X, fielddelimiter=X,
recorddelimiter=X, truestring=xxx, falsestring=xxx,
noheader, onlyquotestrings, usedisplayname
- SF_JSON supports: nodef, rowid, datanode, memoasstring,
nonull, bmp, png (not MacOS), jpeg (not MacOS),
rowidname=xxx, dataname=xxx, definitionname=xxx
- SF_XML supports: nodef, rowid, datanode,
datasetname=xxx, rowidname=xxx,
fieldname=xxx, dataname=xxx, definitionname=xxx
- SF_BIN supports: nodef
Check demo for examples of use.
- Added kbmMWSQLXMLAPI.pas, kbmMWSQLJSONAPI.pas units (Ent) to
support above.
- Added XmlNode and XmlAttr in kbmMWSQLXMLFunc.pas for XML
specific functions useful when running SQL on XML documents.
- Added new QoS flag to WIB messages:
KBMMW_TRANSPORT_QOS_CONFIRMED_DELIVERY
If set on a message, the message will need to be acknowledged
by receiver before its committed in senders queue. In
practice receiver bulk acknowledges received messages at an
interval and/or message count.
- Upped subject header version to 4.
Define KBMMW_SUBJECTHEADER_V3_COMPAT
to generate messages compatible with v3.
Notice that QoS must handshake flag require v4.
- Added AOptions:TkbmMWMessageOptions to all message creating
methods/functions when WIB is enabled. Provides access to
defining QoS flags for a message.
- Added InboundRetransmitTotal, OutboundRetransmitTotal,
AutoSetupHandshakeSubscription,
SendEvent, SendPrioritizedEvent, InboundAckHandler,
OutboundAckHandler
to client and server messaging transports.
- Added Flush method to TkbmMWFileStoreMessageQueue to force
write of cached data to file.
- Added TkbmMWWeekDay type to kbmMWDateTime.pas unit.
- Added global function kbmMWXMLDataType2VariantType to
kbmMWXML.pas. Returns variant datatype based on XML datatype.
- Updated Load/Save functions in kbmMWXML to configure to
stream/not stream BOM markers.
- Changed AttribByNameAsDuration in kbmMWXML to return
TkbmMWDuration value instead of TkbmMWDateTime.
- Added kbmMWAddHop, kbmMWExtractLastHop, kbmMWHopCount,
kbmMWPeerID, kbmMWExtractPeerID,
kbmMWGenerateHandshakeSubscriptionSubject,
kbmMWGenerateHandshakeSubject methods to kbmMWSubjectUtils.
- Added CreateResponseMessage, CreateRequestMessage,
CreateServiceCallMessage methods to WIB.
- Added optional ASilent:boolean=false argument to
CommitMessagePop, RollbackMessagePop, RejectMessage
If true, will not raise exception if message do not exist.
Also now returns true or false depending on if operation
suceeded.
- Added OnStats event to TkbmMWServer. Is called whenever there
is a statistics update.
- Added Load/Save methods for file and stream based storage in
TkbmMWXMLAuthorizationStorage.
- Added mwldtWeb to TkbmMWLogDataType.
- Added Enabled:boolean property to IkbmMWLogManager and
implementing classes.
- Added LogWeb method to IkbmMWLog interface and implementing
classes. Logs data in an Apache compatible way.
- Added function FormatWebLogRecord to IkbmMWLog and
implementing classes. It returns an Apacke compatible log
string to be used with LogWeb.
- Extensively updated TkbmMWInterval in kbmMWDateTime.pas unit
to be nullable, compile numeric value that can be compared
with another interval instance's numeric value to test for
which interval is longer, multiple overloaded constructors,
millisecond support, Compare function.
Supports fractional and overrun values for years, months,
days, hours, minutes, seconds and weeks.
- Added TkbmMWInterval as alias to TkbmMWDuration.
- Added Compare and Clear methods to TkbmMWDateTime.
- Added Incxxx methods to TkbmMWDateTime taking fractional and
overrun values.
- Added Null class function to TkbmMWDateTime returning a null
TkbmMWDateTime.
- Added NCSATimeZone and NCSADateTime properties to
TkbmMWDateTime allow for setting and getting Common Log
Format (NSCA) formatted timezone and datetime values.
- Added Clone function to TkbmMWJSONCustomObject.
- Added AddArray and AddObject functions to TkbmMWJSONArray.
Newly created empty object or array will be added to array
and returned for developer to populate.
- Added InsertArray and InsertObject to TkbmMWJSONArray.
- Added AAutoCreateChildren:boolean (default true) argument to
constructor of TkbmMWJSONObject. Controls what happens when
accessing properties AsArray or AsObject when no array or
object is available under the given name. If
AutoCreateChildren is false, nil will be returned or an
exception raised, else new objects/arrays are created
automatically.
- Added option to stream BOM in TkbmMWJSONStreamer.
- Added Load/Save UTF8 file and stream access methods to
TkbmMWJSONStreamer.
- Added FileStoreOptions property to
TkbmMWFileStoreMessageQueue which
controls what happens when queue is closed. Can be
mwfsoDeleteOnClose, mwfsoDeleteOnCloseWh or nothing.
- Added TkbmMWCustomThreadHashList,
TkbmMWHashStringInterfaceList
and TkbmMWThreadHashStringInterfaceList to kbmMWGlobal.pas.
- Added UTF8Decode methods returning boolean if UTF8 string was
invalid to TkbmMWPlatformMarshal.
- Added WriteBOM and ReadBOM to TkbmMWPlatformMarshal.
- Added kbmMWTextToFloat, kbmMWFloatToText, kbmMWStringToText,
kbmMWSearchNonDecimalDigit, kbmMWSafePath to kbmMWGlobal.pas.
- Added OnHandshake event to client and server messaging
transports.
Changes/minor additions
=======================
- Added APostSubject:string='' argument to all message
producing methods/functions to allow postfixing additional
data to the standard subjects like REQ/RES etc. to allow for
easier custom receiving end filtering based on custom data.
- Added AClosing:boolean = true argument to Flush method of
TkbmMWBufferedFileStream.
If true (default) flush is expected to optionally (on
Windows) truncate file to the actual size it has, not the
sector based size. Call with closing false to just flush the
cache to the file.
- Added GetMimeTypeExt(const AExt:string):string and
GetCharSetExt(const AExt:string):string to
kbmMWCustomHTTPService.pas. Allows for providing a file
extension (including dot) instead of a file path.
- Improved FastCGI communication with FastCGI server to more
reliably detect environment header.
- Changed so SubjectHeader.Hops always initially includes
sender.
- Changed TkbmMWAuthorizationUTCTimeConstraint to use
TkbmMWWeekDay for week day constraints.
- Updated timezone list in kbmMWDateTime.
- Updated TkbmMWOnMessageToSpoke,
TkbmMWOnMessageToSpokeDeliveryFailed,
TkbmMWOnMessageToSpokeDeliverySuccess events to include the
queue.
Fixes
=====
- Fixed leak of TkbmMWInnerThread on shutdown.
- Fixed thread pool bugs.
- Fixed Remote Desktop compilation issues in pre XE6.
- Fixed FIB compilation issues.
- Fixed UniDAC compilation issues and missing Options property.
- Fixed so a response message has same QoS as the request
message.
- Fixed TkbmMWAuthorizationLogin.Touch to touch using UTC, not
local time, which would result in actor being timed
incorrectly out.
- Fixed leak of TFileStream/TkbmMWBufferedFileStream in
kbmMWDebugTdsFile.pas and kbmMWDebugMapFile.pas when loading
of TDS/MAP file excepted (for example by being in use by the
Delphi debugger when running app in debug mode).
- Fixed StreamSec TLS plugin compilation.
- Fixed bugs in
TkbmMWHTTPTransportStreamHelper.HTTPBuildCustomResponseHeader.
- Fixed bugs in SQLite adapter
KBMMW 4.90.00 发布的更多相关文章
- kbmmw 5.05.00 发布
新年前最后几天,kbmmw 发布了新版本,增加一大波功能.we are happy to announce v5.05.50 of our popular middleware for Delphi ...
- KbmMW 4.30.00 发布
今天早上,KbmMW发布了4.30.00 版,这个版本开始支持XE4 的WIN/WIN64/OSX. 暂时不支持ios开发,同时加强了通过JSON 的对象序列化.还有就是解决了我提交的几个有关 汉字处 ...
- KBMMW 4.92.00 发布
We are happy to announce the release of kbmMW Professional and Enterprise Edition. Yet again kbmMW c ...
- KBMMW 4.84.00 发布
kbmMW is a portable, highly scalable, high end application server and enterprise architecture integr ...
- KBMMW 4.83.00 发布
新版本又来了,端午节都不让大家过好:) 这次终于支持ios 64了,不用我再手工改了. Components4Developers is a company established in 1999 w ...
- KBMMW 4.82.00 发布
作者最近加紧了更新进度,赞一个. 时间都去哪儿了? 还没好好看4.81, 新版就来了. 这个版本主要是增强日志管理,已经强大到替换delphi 本身的异常处理了. We are happy to an ...
- KBMMW 4.80.00 发布
一大波更新来了. 4.80.00 March 30 2015 Important notes (changes that may break existing code) ======= ...
- KBMMW 4.70.00 发布
We are happy to announce the release of kbmMW v. 4.70.00 Professional and Enterprise Edition. kbmMW ...
- kbmmw 5.10.00 发布
We are happy to announce v5.10.00 of the most complete development add on for Delphi and C++Builder ...
随机推荐
- HDU5898、 HDU 2089(数位DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5898 题意:很明确,找出区间[l , r]中符合连续奇数为偶数,连续偶数为奇数的个数. 思路:dp[i ...
- 网页左上角图标 favicon.ico
显示网页左上角标志图标 <link rel="shortcut icon" type="image/x-icon" href="images/f ...
- MPI运行程序(接触)
网友遇到的问题并解决问题:mpich2在多个节点上运行并行程序时出错 我使用mpich2时遇到一下问题: 当我运行一个计算圆周率的并行程序cpi.c时,我想在指定的若干个节点上运行这个程序,比如hos ...
- (转)【重磅】无监督学习生成式对抗网络突破,OpenAI 5大项目落地
[重磅]无监督学习生成式对抗网络突破,OpenAI 5大项目落地 [新智元导读]"生成对抗网络是切片面包发明以来最令人激动的事情!"LeCun前不久在Quroa答问时毫不加掩饰对生 ...
- Java事务处理全解析(四)—— 成功的案例(自己实现一个线程安全的TransactionManager)
在本系列的上一篇文章中我们讲到,要实现在同一个事务中使用相同的Connection对象,我们可以通过传递Connection对象的方式达到共享的目的,但是这种做法是丑陋的.在本篇文章中,我们将引入另外 ...
- sql 下,float和numeric
搜了下两者的区别,答案其实很明显: numeric支持最长38位长度的数字,只有在你要的数字的长度超过38位时才推荐使用float 原因是,float在保存和提取,以及数学计算等方面,会产生于期待记过 ...
- HTC Vive开发笔记之手柄震动
手柄震动的代码SteamVR_Controller脚本的最上面的注释里面就有说明,其实也很简单 // Example usage: //这个栗子是左手柄震动 右手震动只需把Leftmost换成Righ ...
- html__脚本之家
深入剖析Android的Volley库中的图片加载功能 Android图片加载缓存框架Glide Android程序开发ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不 ...
- gcc-常见命令和错误
一:编译过程的4个阶段:预处理,编译,汇编,链接; 1:最常用的方式 gcc hello.c -o hello 2:预处理后停止编译 gcc -E hello.c -o hello.i(.i通常为 ...
- properties文件简介及其常用Java操作
一.properties文件简介 java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值&q ...